0

我正在使用 rails 3.2.3 并且无法在我的 HABTM 关系中分配值。

基本上我有 2 个模型,产品和用户。当我创建一个新产品时,我想在 Products_Users 中间表中插入插入的值。

它必须是 HABTM,因为将来我希望能够说“用户 x 也可以编辑该产品”,而不仅仅是产品的原始创建者。

我的模型:(为简单起见省略了其他关系)

product.rb
class Product < ActiveRecord::Base
has_and_belongs_to_many :users
accepts_nested_attributes_for :users

attr_accessible <product attributes>, :user_ids, :user_id #it says cant mass assign user_ids so I also added the :user_id, but then it says unknown attribute :user_id
end

user.rb

class User < ActiveRecord::Base
has_and_belongs_to_many :products
attr_accessible :user_id <plus the user attributes>
end

我的产品控制器具有来自脚手架的默认操作和代码。

问题也可能出在我的观点上。我在产品和类别之间也有 HABTM 关系,一切都很好(我从复选框列表中选择类别)

但是,在已登录的用户创建新产品后,如何在 Products_Users 表中插入新行?

我试图在表单中使用我的视图:

<%= f.hidden_​​field :product_id, :value => params[:id]%> #如果产品不是技术上创建的,这里放什么?

<%= f.hidden_​​field :user_id, :value => current_user.id%>#这个“current_user.id”在其他视图中有效。

这不起作用,也没有什么意义,是否有可能实现我想要做的事情?

谢谢你的帮助

4

1 回答 1

4

我删除了hidden fields并在保存后添加了这个:

user=current_user
@product.users << user

希望它可以帮助某人。

问候

于 2012-05-24T11:48:02.927 回答