Rails 4强参数: 允许所有属性?

我正在构建一个带有 Rails 4强参数的 Web 应用程序。

在构建管理后台办公控制器时,我想知道允许所有模型属性的最佳方法是什么?

现在,我写道:

def user_params
params.require(:user).permit(User.fields.keys)
end

你有更好的办法吗?

60580 次浏览

这样行吗?

def user_params
params.require(:user).permit(User.column_names)
end

Skull0inc 的回答是有效的,但是您可能需要删除 created_atupdated_at。强参数的目的是只列出希望控制器可更新的属性。 比如..。

def user_params
params.require(:user).permit(User.column_names - ["created_at", "updated_at"])
end

如果有人需要 Rails 6,甚至没有一个模型链接到您的控制器,您可以使用:

before_action :accept_all_params


private


def accept_all_params
params.permit!
end

好了,现在你想玩多少就玩多少!