Рельсы 3 - таблица не обновляется при создании нового HABTM ассоциации
Я потратил на это последние три дня и нигде не могу найти ответа. Я пытаюсь изучить Rails, и я начал с того, что казалось довольно простым приложением.
У меня есть 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"
Мои пользователи / показать.формат html.erb файл содержит форму
<%= form_for([@user, @user.albums.build]) do |f| %>
Когда эта форма отправляется, она вызывает my album#create controller
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.4 ms) вставить в" albums "("title"," user_id") значения (?, ?) [["title", "My Title"], ["user_id", nil]]
Я попытался добавить hidden_field в мою форму с user_id, но затем я получаю эту ошибку
Can't mass-assign protected attributes: user_id
Может ли кто-нибудь объяснить мне, что не так с моими моделями и моим ассоциация? Спасибо!