我試圖創建一個'標記'功能,它允許用戶「標記」他們感興趣的項目。這裏是我的模型Rails 3 - 你如何創建一個新的記錄從link_to
class tag
belongs_to :user
belongs_to :item
end
相應的數據庫表有必要:user_id
和:item_id
領域。
在:items
的列表中,我希望每個:item
旁邊的鏈接都允許用戶標記:item
。由於我知道:user_id
和:item_id
,我想創建一個新的:tag
記錄,設置ID字段並保存記錄 - 所有這些都不需要用戶干預。我嘗試了以下調用link_to
,但沒有記錄在數據庫中保存:
<%= link_to 'Tag it!', {:controller => "tracks",
:method => :post,
:action => "create"},
:user_id => current_user.id,
:item_id => item.id %>
(此代碼是一個內:@item.each do |item|
語句,所以item.id有效)
這link_to
調用創建此網址:
http://localhost:3000/tags?method=post&tag_id=7&user_id=1
這不會在數據庫中創建Tag
記錄。下面是我在tags_controller
def create
@tag = Tag.new
@tag.user_id = params[:user_id]
@tag.tag_id = params[:tag_id]
@tag.save
end
我怎樣才能得到的link_to創建並保存新的標籤記錄:create
行動?
謝謝!它適用於您的修復。在回答中顯示link_to簽名確實幫助我最終了解發生了什麼。非常感激。 –
只是一個快速的評論。在url_options散列中,控制器鍵的值應該是「items」而不是「item」。嘗試顯示鏈接時,它會給你一個ActionController路由錯誤。 – icantbecool
@dexter,如果鏈接不在應用程序之外,例如在電子郵件中會發生什麼情況?我的使用案例是針對RSVP的。我想直接從電子郵件鏈接創建一個新的RSVP,但我想保持RESTful。 – Mohamad