2013-07-09 2 views
0

I는이 경로를 가지고 : 내가 사용하는 경우 투표가 기본실종 필요한 키 : [: 옵션]

match "poems/by_vote" => "poems#index" , via: [:get] , :as => :poems_by_votes , :vote => true 

에 의해 시작됩니다 :

내가 함께 직면
<%= link_to "by_vote" , poems_by_votes_path%> 

:

No route matches {:action=>"index", :controller=>"poems", :vote=>true} missing required keys: [:option] 

나는 또한 이것들을 사용했으나 아무도 일하지 않았다 :

<%= link_to "test" , poems_by_votes_path(:vote => true)%> 
<%= link_to "test" , poems_by_votes_path , :options => { :vote => true } %> 
<%= link_to "test" , poems_by_votes_path(true)%> 

어떻게해야합니까?

+0

이 경로는'namespace'' 범위'또는 다른 종류의 다른 블록 안에 있습니까? –

+0

아니요 어떤 블록에도 없습니다. – Pooya

+0

또한 생성하려고하는 URL은 무엇입니까? '/ poems/by_vote? vote = true'? –

답변

2

poems_by_votes_path은 link_to에서 사용하게 될 문자열을 반환 할 것입니다. vote 매개 변수는 해당 문자열 어딘가에 포함되어야합니다 (예 : 쿼리 문자열). 나는 다음과 같은 것을 할 것이다 :

get 'poems/by_vote', as: :poems_by_vote 

.... 

poems_by_vote_path # poems/by_vote 
poems_by_vote_path(vote: true) # poems/by_vote?vote=true 

.... 

def index 
    vote = params[:vote] || false 
    # look up poems based on vote... 
end 
+0

예, 작동하고 tnx입니다. 그러나 vote = true와 같은 것을 피하는 다른 방법은 없습니까? 나는시/by_vote와 그 이상을 갖고 싶다. – Pooya