2016-06-08 103 views
0

我正在構建Ruby on Rails應用程序,並且生成了一些腳手架。 我想向我創建的自定義鏈接添加一個確認框(如刪除元素時彈出的確認框)。Ruby on Rails將確認添加到link_to

的元素刪除的語法如下:

<td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td> 

這是我的自定義鏈接:

<td><%= link_to 'set done', :controller => 'users', :action => 'set_donation_done', :user => user, data: { confirm: 'Are you sure?' } %><td> 

的問題是,在我的自定義鏈接的確認框不會出現。如果我檢查元素,我看到下面的html代碼:

<a href="/set_donation_done?data%5Bconfirm%5D=Are+you+sure%3F&amp;user=71">set done</a> 

我在做什麼錯?

回答

0

找到了解決辦法:

<td><%= link_to 'set done', {:controller => 'users', :action => 'set_donation_done', :user => user}, data: { confirm: 'Are you sure?'} %><td> 

白衣這個公式我在PARAMS我的用戶數據,我可以看到的確認框!

1

嘗試這樣的:

<%= link_to 'set done', { controller: 'users', action: 'set_donation_done' }, user: user, data: { confirm: 'Are you sure?' } %> 

記住:

link_to(body, url_hash, html_hash) 

http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to

+0

謝謝,但還有另一個問題,你的代碼我看到確認框,但沒有更多的「用戶」參數,我得到以下錯誤:「無法找到用戶'ID'=」。如果我嘗試在控制檯中打印參數,我會得到以下結果:{「controller」=>「users」,「action」=>「set_donation_done」} – ste

0

你不需要控制器動作哈希值。簡單地表明,當HTML散列開始像這樣: <td><%= link_to 'Destroy', user, method: :delete,{ data: { confirm: 'Are you sure?' }} %></td>