2013-07-09 2 views
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)%> 

что делать?

+0

Этот маршрут находится в пространстве имен или в каком-то другом блоке? –

+0

нет ни в одном блоке. – Pooya

+0

Также, какой URL-адрес вы ожидаете от этого? '/ Стихи/by_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

Смежные вопросы