我的创建操作中的第3行是否被视为不良实践?
因为用户有许多相册,而且相册需要链接到正确的用户,所以我基本上从当前用户获取ID,并将其存储在“我的相册数据库”表的“用户ID”列中。
我确信这应该在模型中完成,例如在保存之前或创建之前
我很难让它工作。我创建了一个带有参数的方法,并试图通过控制器将当前的用户id传递给在我的模型中编写的方法,然后在保存之前在后面提供该方法名,但我要么得到错误的参数数目错误,要么得到未定义的方法。
有人能解释一下我是怎么做到的吗?非常感谢。
def create
@photoalbum = PhotoAlbum.new(params[:photo_album])
@photoalbum.user_id = current_user.id
if @photoalbum.save
flash[:notice] = "Successfully created gallery."
redirect_to @photoalbum
else
render :action => 'new'
end
end
亲切问候
最佳答案
这没什么问题,
但我倾向于让它更具体。
你说用户has_many :photo_album
所以我们可以说
def create
@photoalbum = current_user.photo_albums.build(params[:photo_album])
if @photoalbum.save
flash[:notice] = "Successfully created gallery."
redirect_to @photoalbum
else
render :action => 'new'
end
end
这也达到了同样的效果,
但是使用has_many可以使我们的意图更加清晰。