0

我有这条路线:默认情况下会启动投票

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_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
于 2013-07-09T19:03:05.470 回答