2012-08-29 76 views
1

我正在製作由「發佈」模型和「評論」模型組成的董事會。如何讓導軌識別活動記錄的正確標識?

我正在製作的電路板不需要登錄過程,因此需要密碼才能刪除帖子或評論。

當我試圖刪除帖子時,下面的代碼運行良好。 (如果用戶點擊「刪除」按鈕,將顯示其有密碼的形式隱藏DIV,所以我用的form_for。)

<%= link_to_function "Delete", "$('#post_password_box').toggle()" %> | 
<div id="post_password_box"> 
    <%= form_for(@post, url: { action: "destroy"}, html: { method: :delete, class: nil, id: nil}) do |f| %> 
    <%= f.label :password %> 
    <%= f.password_field :password %><br> 

    <%= f.submit "Commit", class: "btn", data: { confirm: "Are you sure?" } %> 
    <%= button_to_function "Cancel", "$('#post_password_box').hide()", class: "btn" %> 
    <% end %> 
</div> 

所以,我用類似的代碼,當涉及到刪除評論。

一目瞭然,上面的代碼似乎工作正常,但存在代碼不會刪除正確註釋的問題。

例如,如果一個帖子的ID是20和評論我要刪除的ID是10,它會刪除其ID是20

的評論,我發現這個問題來自於一個事實表單標籤的動作屬性在每個評論中都如下所示。

 <form accept-charset="UTF-8" action="/comments/20" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="_method" type="hidden" value="delete" /><input name="authenticity_token" type="hidden" value="Y2oBuoIxa+9yPLC5WflKVVELw3jgKsi9s9/8Cfvr2u8=" /></div> 

我應該怎麼做才能讓rails找到合適的表單標籤的action屬性的值? (在這種情況下,它應該是「/ comments/10」,而不是「/ comments/20」。)

回答

1

讓rails爲您生成URL。目前你自己設定的網址,但你不能爲:id所以軌道指定值取的params[:id]

當前值嘗試

form_for(comment, :method => :delete) 

相反。

+0

謝謝你的快速回答! :)它幫了很多。 – glast