【问题标题】:Ruby on Rails , Gem Devise CustomizationRuby on Rails , Gem 设计定制
【发布时间】:2014-12-01 19:17:46
【问题描述】:

您好,我目前正在开发我的 Ruby on Rails 项目,我想自定义设计 gem,但我的问题是我似乎无法找到一些关于如何自定义设计的教程,更具体地自定义登录、参数。

我已经自定义了设备的登录和视图,但我的问题是它似乎没有创建 username 、 firstname 、 lastnamge 、 age 等。

它只获取电子邮件和密码等基本资料

我知道文档很棒,而且特别是因为它是完整的,但我的问题是,当我看不到视频时,我发现它有点难以理解,或者我如何自定义我可以放入设计中的内容任何人都可以帮助我解决这个问题,或者任何关于一些教程的信息,实际上我在上面指定的内容会很棒并且真的很感激,请我对 RoR 有点新,所以我觉得只是阅读有点困难文本,所以我需要一些视频,谢谢!

simplybel@simplybel:~/projects/gamification$ rails c
Loading development environment (Rails 4.1.6)
2.1.2 :001 > User.all
  User Load (0.8ms)  SELECT "users".* FROM "users"
 => #<ActiveRecord::Relation [#<User id: 7, first_name: nil, last_name: nil, profile_name: nil, email: "pat@yahoo.com", encrypted_password: "$2a$10$xg.HMU2JljnVLls3IX7Go.IfJVLGYSSRePjtDaYS4nE...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 1, current_sign_in_at: "2014-12-01 23:50:17", last_sign_in_at: "2014-12-01 23:50:17", current_sign_in_ip: "127.0.0.1", last_sign_in_ip: "127.0.0.1", created_at: "2014-12-01 23:50:17", updated_at: "2014-12-01 23:50:17">]> 

2.1.2:002 >

这是 Rails 控制台在听取您的建议后返回的内容,这是您可以克隆的代码

https://github.com/sanchez900/gamification.git

这是在我进行类似更改之前的代码

class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?

protected

def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :username
end
end

我也是这样做的

rails generate devise:views

控制器也做了 rails generate devise:controllers users

做了路线 devise_for :用户,控制器:{会话:“用户/会话”}

一些其他信息也可能有助于项目克隆/链接在我进行修改之前

【问题讨论】:

  • 为你检查我的更新答案

标签: devise ruby-on-rails-4.1


【解决方案1】:

如果您已正确设置视图以提交所有添加参数,那么您需要按照文档https://github.com/plataformatec/devise#strong-parameters 中的说明进行操作。

您需要更新注册表单上允许的参数以接受您需要的新参数。为此,您可以设置一个前置过滤器来为您的设计控制器配置允许的参数。在您的应用程序控制器中尝试类似的操作。

    before_action :configure_permitted_parameters, if: :devise_controller?

    def configure_permitted_parameters
      devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:first_name, :last_name, :profile_name) }
    end

您需要像上面那样显式地编写它(或者如果您愿意,可以使用 .push)


【讨论】:

  • 嗨,我尝试了代码,这就是它向我展示的内容,我会更新详细信息
  • 您好,感谢您的帮助,终于弄清楚了为什么将它放在错误的文件中,现在工作真的很感谢,因为昨天睡了 2 天,砰!再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 2015-02-04
相关资源
最近更新 更多