2014-01-12 3 views
0

Я пробовал делать несколько поисков и не мог найти ничего, поэтому, надеюсь, я не отправляю дубликат.Rails link_to action, post с блоком

Таким образом, API Dock's link_to docs имеет это как подпись:

link_to(options = {}, html_options = {}) do 
    # name 
end 

казалось довольно интересно, так что я решил дать этому выстрел:

<%= link_to { action: 'win', game_id: @games[0].id }, { :method => :post } do %> 
    <div> 
    <%= image_tag @games[0].img_url %> 
    <%= @games[0].name %> 
    </div> 
<% end %> 

Это привело к синтаксической ошибке в первом линия:

syntax error, unexpected ':', expecting '}' 
...ffer.append= link_to { action: 'win', game_id: @games[0].id... 

Я также пробовал с помощью скобок:

<%= link_to ({ action: 'win', game_id: @games[0].id }, { :method => :post }) do %> 

Это также дал мне ошибку синтаксиса, ту же строку:

syntax error, unexpected ',', expecting ')' 
...'win', game_id: @games[0].id }, { :method => :post }) do @ou... 

Я смотрел на этом некоторое время, и я полагаю, что это что-то просто я пропустил, но если у кого есть какие-либо идеи , Я бы очень признателен!

Спасибо!

+0

попробовать '{: действие => 'победа',: game_id => @games [0] .id}, {: метод =>: запись}' Я не уверен, но я думаю, это может быть потому, что вы смешиваете синтаксис 1.9 ruby ​​с синтаксисом <1.9, то есть: key =>: value vs key: 'value – toolz

+0

@toolz Я пробовал, но не повезло найти ... – kotakotakota

+1

@kotakotakota Почему бы вам не использовать именованный маршрут вместо 'action: 'win', game_id: @games [0] .id'; например, 'won_game_path (id)'? – Mohamad

ответ