0

我在控制器中有一个简单update的操作:Rails 4

#more stuff here
def update
  if @user.update(user_params)
    flash[:notice] = "User #{@user.username} updated"
    redirect_to users_path
  else
    render 'edit'
  end
end
private
def set_user
  @user = User.find(params[:id])
end

但是,RubyMine 警告@user.updateand @user.username

如果控制器操作在初始 .find 或 .new 之后包含多个模型方法调用,则此检查会发出警告。建议您在模型类中实现所有业务逻辑,并使用单一方法访问它。

我在这里看不到more than one model method call。有人可以解释发生了什么吗?

编辑- 我在create没有警告的情况下在行动中有类似的东西,所以我相信这与user_params......

def create
  if @user.save
    flash[:notice] = "User #{@user.username} created"
    redirect_to users_path
  else
    render 'new'
  end
end
4

1 回答 1

3

假设username是模型中的一种方法,您可以在其中合并 userfirst_namelast_name.

我猜是你@user.update(user_params)@user.username两个方法调用。一个保存模型,另一个在 flash 通知中设置用户全名。

这只是来自 ruby​​mine 的警告,它只是建议您采取一些行动,而不是必须遵循它们。

于 2013-08-14T10:52:12.770 回答