我使用的是rails 3.2.3,並且無法在我的HABTM關係中分配一個值。Ruby on Rails - 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,:值=> PARAMS [:ID]%> #What放到這裏如果產品ISN」通過創建?
<%= f.hidden_field:user_id,:value => current_user.id%>#這個「current_user.id」適用於其他視圖。
這不工作,也沒有什麼意義,是否有可能實現我想要做的?
感謝您的幫助
我不能幫你,但請**永遠不要**將當前用戶放到表單域中。從客戶端劫持非常容易。 – iltempo
Humm我看到了...但我怎麼知道哪個用戶正在創建產品? :/ – Silver
在將表單發送到之後的控制器操作中明確設置它。 – iltempo