如何在创建ActiveRecord对象时设置属性?
我正在尝试在我正在创建的对象上设置属性。 我觉得这应该工作:
def create @album = Album.new(params[:album]) @album.user = current_user if @album.save flash[:notice] = 'Album was successfully created for ' + current_user.login + '.' redirect_to albums_url else render :action => "new" end end
但似乎忽略了对user
字段的分配。 有任何想法吗?
假设您的模型关系设置正确*,最好这样做:
@album = current_user.albums.build(params[:album])
– 这将正确地将新专辑的user_id
字段填充到当前用户的ID。
*就像是:
class User < ActiveRecord::Base has_many :albums . . . end class Album < ActiveRecord::Base belongs_to :user . . . end
您的相册迁移或您的相册模型是否引用了user_id或与用户的关系?
如果不是,即使您分配了数据库,数据库也不会保存该信息。