我是一个相对的新手,所以非常感谢任何帮助。
我使用的是Rails 4.2,带有权限gem进行身份验证。我希望有人能够描述超越控制器的最佳实践,以便在sign_up表单中包含自定义属性。
我阅读了很多建议,其中很多都来自于以前版本的不使用strong_parameters的rails。
如果有人能提供我需要超越的方法的简单分类(user_params/user_from_params/等等),我将非常感激。我可以通过定义一个只包含@user = User.new的新'user_params‘方法和一个使用.permit的新’user_params‘方法来实现功能,但我担心的是我在user_from_params中绕过的默认代码。
在这里,任何关于最佳实践的建议都是非常棒的!
谢谢
发布于 2015-03-19 13:34:53
当我有时间更新文档以获得许可时,我正在工作,但是现在最简单的事情是检查清除用户控制器,查看可以被覆盖的各种方法。
user_from_params的默认实现现在有点奇怪,因为Clear1.x仍然支持Rails 3.x,因此它是在我们使用attr_accessible而不是强参数时编写的。
我可能会做这样的事:
def user_params
# Use strong params to do what you need
end
def user_from_params
User.new(user_params)
end您可能需要稍微按摩一下user_params,以便您在那里所做的任何操作对于new操作仍然有效,因为user_from_params仍然在那里使用。我已经打开了一个在清除中发出,看看我们是否可以在2.0之前改进这个方面。
发布于 2015-05-14 03:37:55
首先,扩展Clearance::UsersController并重写#user_params以允许新属性:
# app/controllers/users_controller.rb
class UsersController < Clearance::UsersController
private
def user_params
params[:user].permit(:email, :password, :your_custom_attribute)
end
end然后,更新您的路由文件以使用您的新控制器:
# config/routes.rb
resources :users, controller: :users, only: :createhttps://stackoverflow.com/questions/29136246
复制相似问题