首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails 4和thoughtbot/许可-向用户模型添加字段

rails 4和thoughtbot/许可-向用户模型添加字段
EN

Stack Overflow用户
提问于 2015-03-19 02:34:09
回答 2查看 1.2K关注 0票数 3

我是一个相对的新手,所以非常感谢任何帮助。

我使用的是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中绕过的默认代码。

在这里,任何关于最佳实践的建议都是非常棒的!

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-19 13:34:53

当我有时间更新文档以获得许可时,我正在工作,但是现在最简单的事情是检查清除用户控制器,查看可以被覆盖的各种方法。

user_from_params的默认实现现在有点奇怪,因为Clear1.x仍然支持Rails 3.x,因此它是在我们使用attr_accessible而不是强参数时编写的。

我可能会做这样的事:

代码语言:javascript
复制
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之前改进这个方面。

票数 0
EN

Stack Overflow用户

发布于 2015-05-14 03:37:55

首先,扩展Clearance::UsersController并重写#user_params以允许新属性:

代码语言:javascript
复制
# app/controllers/users_controller.rb
class UsersController < Clearance::UsersController

  private

  def user_params
    params[:user].permit(:email, :password, :your_custom_attribute)
  end
end

然后,更新您的路由文件以使用您的新控制器:

代码语言:javascript
复制
# config/routes.rb
resources :users, controller: :users, only: :create
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29136246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档