我已經花了最近三天的時間了,我無法在任何地方找到答案。 我試圖學習Rails,並開始使用看起來相當簡單的應用程序。Rails 3 - 在創建新的HABTM協會時沒有更新連接表
我有2種型號:
class Album < ActiveRecord::Base
has_and_belongs_to_many :users
attr_accessible :title
end
和
class User < ActiveRecord::Base
has_and_belongs_to_many :albums
attr_accessible :first_name, :last_name
end
我還創建了連接表
create_table "albums_users", :id => false
t.integer "album_id"
t.integer "user_id"
我的用戶/ show.html.erb文件包含一個形式
<%= form_for([@user, @user.albums.build]) do |f| %>
當發送這種形式,它要求我的專輯#創建控制器
def create
@user = User.find(params[:user_id])
@album = @user.albums.cre(params[:album])
@album.save
end
這將創建一個新專輯,但不建立在連接表中的條目。
當在參數看提交表單時哈希發送,我有
Parameters: {"utf8"=>"✓", "commit"=>"Create Album", "user_id"=>"1", "authenticity_token"=>"XNCPLYWQRzjpuQfjqbR7XuhMjr5iRzjLiqXpqZ4spFo=", "album"=>{"event"=>"title"=>"My Title"}}
和SQL請求不從參數哈希使用USER_ID值
SQL(3.4ms )INSERT INTO 「專輯」( 「標題」, 「USER_ID」)VALUES(?,?)[ 「標題」, 「我的標題」],[ 「user_ID的」 零]
我嘗試添加一個隱藏的字段給我f ORM與USER_ID但後來我得到這個錯誤
Can't mass-assign protected attributes: user_id
誰能給我解釋一下什麼是錯我的模型,我的聯想? 謝謝!
你確定你想要使用HABTM?如果是這樣,你通常不會在HABTM關係中使用'accep_nested_attributes_for' ... – link664
它看起來像你的相冊模型有一個user_id屬性。檢查你的schema.db文件,它應該在那裏嗎? – link664
Has_many關係會更容易處理嗎?我的相冊模型中有一個user_id屬性。不應該在那裏? – mreysset