我的创建操作中的第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可以使我们的意图更加清晰。

10-01 01:42