Rails在创建/更新之前过滤params

时间:2014-04-22 02:40:40

标签: ruby-on-rails ruby-on-rails-4

我正在尝试将用户权限添加到设计时没有设置用户权限的现有应用。 ie)如果您已登录,则可以创建,更新和删除对象。

应用程序正在使用Rails 4,因此我可以利用强大的参数。

我需要添加一个只能编辑模型嵌套属性的新用户级别。所以我想在更新,创建父模型之前过滤出params变量。

如何在更新或创建模型之前过滤掉params变量?

2 个答案:

答案 0 :(得分:0)

您需要某种授权方法。有宝石可以帮助解决这个问题,但我建议至少阅读rails教程的这一章。

http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#sec-authorization

你可能想要阅读整篇文章,这是一篇很棒的简介。

答案 1 :(得分:0)

我使用类似于以下代码的东西

# model controller pseudocode
def create
  Model.create!(create_params)
end

def update
  @model.update_attributes(update_params)
end

private
def create_params
  params.require(:model).permit(:some_attr)
end

def update_params
  params.require(:model).permit(:totally_different_attr)
end