我正在构建一个带有Rails 4强参数的Web应用程序。
在构建管理员后台控制器时,我想知道允许所有模型属性的最佳方法是什么?
现在,我写了这个:
def user_params
params.require(:user).permit(User.fields.keys)
end
你觉得有更好的方法吗?
你可以拨打许可证的爆炸版本。
params.require(:user).permit!
Strong Params README on Github
源代码供参考:
def permit!
each_pair do |key, value|
convert_hashes_to_parameters(key, value)
self[key].permit! if self[key].respond_to? :permit!
end
@permitted = true
self
end
Skull0inc的答案有效,但您可能想删除created_at
和updated_at
。强params的意图是仅列出控制器可以更新的属性。就像是...
def user_params
params.require(:user).permit(User.column_names - ["created_at", "updated_at"])
end
这会有用吗?
def user_params
params.require(:user).permit(User.column_names)
end