gpt4 book ai didi

ruby-on-rails-3 - Rails 3 - 如何从 link_to 创建新记录

转载 作者:行者123 更新时间:2023-12-04 05:57:14 25 4
gpt4 key购买 nike

我正在尝试创建一个“标记”功能,允许用户“标记”他们感兴趣的项目。这是我的模型

class tag
belongs_to :user
belongs_to :item
end

对应的DB表有必要的 :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调用创建此 URL:
http://localhost:3000/tags?method=post&tag_id=7&user_id=1

这不会创建 Tag记录在数据库中。这是我的 :create tags_controller 中的操作
 def create
@tag = Tag.new
@tag.user_id = params[:user_id]
@tag.tag_id = params[:tag_id]
@tag.save
end

如何让 link_to 创建和保存新的标签记录?

最佳答案

生成的 URL 将方法作为参数这一事实意味着它正在执行 GET 而不是 POST。

您必须使用的 link_to 签名是 link_to(body, url_options = {}, html_options = {})

<%= link_to 'Tag it!', {:controller => "item", 
:action => "create",
:user_id => current_user.id,
:item_id => item.id},
:method => "post" %>

:method 应该传递给 html_options 并传递给 url_options。这应该有效。

关于ruby-on-rails-3 - Rails 3 - 如何从 link_to 创建新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7218940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com