Rails:我们如何检测CRUD控制器中更新了哪些参数



我只是想知道:如何识别经典CRUD控制器中正在更新的参数?我想重定向到不同的路径,这取决于正在更改的参数。

例如,如果我有一个具有3个属性id namefirstnamePerson

在我的控制器中:

def update
  @person = Person.find(params[:id])
  respond_to do |format|
    if @person.update_attributes(params[:person])
      #...
    else
      #...
    end
  end
end

如何检测name正在更改,而不是firstname

!params[:name].nil?这样的东西行吗?

谢谢你的帮助!

这样你就可以像你说的那样检查参数了。类似if !params.[:name].nil? ...

你可以使用_changed?方法

@person.attributes = params[:person]
if @person.name_changed?
  next_path = name_changed_path
else
 ...
end
@person.save
redirect_to next_path

相关内容

  • 没有找到相关文章

最新更新