나는 다음과 같은 경로있다 :왜 current_page가 맞습니까? 완전히 관리되는 리소스에서 수행 할 때 'no route error'를 반환합니까?
resources :profiles do
member do
patch :speed_rating
patch :dribbling_rating
patch :passing_rating
patch :tackling_rating
post :favorite
post :unfavorite
end
collection do
get :autocomplete
end
end
나는에 관심이 다음 경로 생성,이 내 application.html.erb
에서
# truncated for brevity
profiles_path GET /profiles(.:format) profiles#index
profile_path GET /profiles/:id(.:format) profiles#show
있습니다
<% if current_page?(controller: "profiles", action: "show")%>
<div id="page-wrapper" class="gray-bg">
<% else %>
<div id="page-wrapper" class="image-bg">
<% end %>
언제 I 내 Profiles#Show
으로 가면 제대로 작동하지만 내 Profiles#Index
(일명 my root_path)로 이동하면 다른 것을 얻을 수 있습니다. 기록을 위해 편집 한
Started GET "/" for ::1 at 2016-11-07 16:52:01 -0500
User Load (1.9ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 7], ["LIMIT", 1]]
Processing by ProfilesController#index as HTML
Role Load (4.8ms) SELECT "roles".* FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = $1 AND (((roles.name = 'admin') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL))) [["user_id", 7]]
Role Load (12.9ms) SELECT "roles".* FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = $1 AND (((roles.name = 'coach') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL))) [["user_id", 7]]
Role Load (6.7ms) SELECT "roles".* FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = $1 AND (((roles.name = 'player') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL))) [["user_id", 7]]
(4.9ms) SELECT COUNT(*) FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = $1 AND (((roles.name = 'admin') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL)) OR ((roles.name = 'coach') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL))) [["user_id", 7]]
CACHE (0.0ms) SELECT "roles".* FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = $1 AND (((roles.name = 'player') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL))) [["user_id", 7]]
(2.6ms) SELECT COUNT(*) FROM "roles" INNER JOIN "users_roles" ON "roles"."id" = "users_roles"."role_id" WHERE "users_roles"."user_id" = $1 AND (((roles.name = 'coach') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL)) OR ((roles.name = 'admin') AND (roles.resource_type IS NULL) AND (roles.resource_id IS NULL))) [["user_id", 7]]
Profile Search (23.5ms) curl http://localhost:9200/profiles_development/_search?pretty -d '{"query":{"match_all":{}},"size":1000,"from":0,"timeout":"11s","_source":false}'
Tournament Load (2.7ms) SELECT "tournaments".* FROM "tournaments" ORDER BY "tournaments"."id" ASC LIMIT $1 [["LIMIT", 1]]
Rendering profiles/index.html.erb within layouts/application
Profile Load (1.7ms) SELECT "profiles".* FROM "profiles" WHERE "profiles"."id" IN (14, 22, 12, 21, 9, 5, 4, 15, 6, 7, 16, 18, 13, 23, 17)
Read fragment views//profiles/14-20161105042425134917/profiles/22-20161106175803133611/profiles/12-20161101225114614189/profiles/21-20161103035514173735/profiles/9-20161104221706306433/profiles/5-20161105043153971213/profiles/4-20161103035528589634/profiles/15-20161029013919242687/profiles/6-20161105043216951643/profiles/7-20161101001052922220/profiles/16-20161029020526832889/profiles/18-20161101223838805685/profiles/13-20161104221749051281/profiles/23-20161104062851335443/profiles/17-20161105043606243802/af785066fd895798884eea54748241db (0.1ms)
Rendered profiles/index.html.erb within layouts/application (12.5ms)
Completed 500 Internal Server Error in 379ms (ActiveRecord: 36.4ms)
ActionController::UrlGenerationError - No route matches {:action=>"show", :controller=>"profiles"}:
, 문제없이 다음과 같은 작품 : 그것은 url_for
사용하면 current_page?
source code을 살펴 경우
<% if (controller_name.eql? "profiles") && (action_name.eql? "show") %>
: 컨트롤러 => "프로필" "프로필"이어야하지 않습니까? –
@EricDuminil입니다. 내 잘못이야. 나는'current_page? (controller : "profile")'를 사용하고 잘못된 로그 출력을 붙여 넣었을 때 중요 여부를 테스트하고있었습니다. 이제 해결되었습니다. 또한, 기록을 위해, 그것은 중요하지 않았다. 어느 쪽도 효과가 없었다. – marcamillion