0

デフォルトで :vote が開始されるこのルートがあります

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)%>

何をすべきか?

4

1 に答える 1

2

poems_by_votes_pathlink_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
于 2013-07-09T19:03:05.470 に答える