相关疑难解决方法(0)

使用Devise添加额外的注册字段

我正在尝试为注册#new添加一些额外的字段.由于我只需要额外的数据并且不需要不同的功能,我不明白为什么我需要覆盖控制器等.所以我做的是修改注册#new如下:

在此输入图像描述

要通过清理程序启用这些额外字段,我更新了ApplicationController,如下所示:

在此输入图像描述

由于某种原因,它不起作用,额外的字段作为空值进入数据库.

我正在使用Ruby 2和Rails 4 rc1,以及Devise 3.0.0.rc.

ruby-on-rails devise

18
推荐指数
6
解决办法
3万
查看次数

无法在Ruby on Rails中为Devise模型添加自定义字段.私有方法错误

使用Devise gem生成用户模型.

尝试添加"用户名"属性.

随后的官方文档,现在我的ApplicationController看起来像这样:

class ApplicationController < ActionController::Base

  protect_from_forgery with: :exception
  before_action :configure_permitted_parameters, if: :devise_controller?
  before_action :authenticate_user!

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:account_update, keys: [:username])
    devise_parameter_sanitizer.permit(:sign_in, keys: [:username])
    devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
  end

end
Run Code Online (Sandbox Code Playgroud)

当我尝试转到帐户更新页面时,我收到以下错误:

NoMethodError in Devise::RegistrationsController#edit

private method `permit' called for #Devise::ParameterSanitizer:0x007f13396cf180>
Run Code Online (Sandbox Code Playgroud)

这里有什么不对的?

ruby ruby-on-rails devise

11
推荐指数
2
解决办法
4863
查看次数

设计未定义的方法`first_name'

所以,我正在为rails应用程序使用设计用户身份验证.我希望为设计用户添加名字和姓氏.因此,我为Users数据库创建了新列.不幸的是,当我尝试我的表单时,我得到"未定义的方法`first_name'".这是表格:

        <h2>Sign up</h2>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
    <%= devise_error_messages! %>

    <div><%= f.label :first_name %><br />
      <%= f.first_name :first_name, autofocus: true %></div>

    <div><%= f.label :last_name %><br />
      <%= f.last_name :last_name, autofocus: true %></div>

    <div><%= f.label :email %><br />
    <%= f.email_field :email, autofocus: true %></div>

    <div><%= f.label :password %><br />
      <%= f.password_field :password, autocomplete: "off" %></div>

    <div><%= f.label :password_confirmation %><br />
      <%= f.password_field :password_confirmation, autocomplete: "off" %></div>

    <div><%= f.submit "Sign up" %></div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我确认使用控制台实际添加了数据库列.我打字了

user …

ruby ruby-on-rails devise ruby-on-rails-3

2
推荐指数
1
解决办法
746
查看次数

Rails - Devise - 将配置文件信息添加到单独的表中

我正在使用 Devise 在我的应用程序中构建注册/身份验证系统。

查看了相当多的用于向设计模型添加信息的资源(例如用户名、传记、头像 URL 等)[资源包括Jaco Pretorius 的网站这个(格式错误的)SO 问题这个 SO 问题

一切都很好——它有效。但我的问题是它保存到 User 模型,根据数据库规范化也引用这个 SO 问题has_one),它实际上应该保存到通过and连接的 User 子模型belongs_to

到目前为止,我已经User通过 Devise 创建了一个模型。我还UserProfile通过rails generate脚本创建了一个模型。

user.rb(供参考)

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable, :confirmable, :recoverable, :rememberable, :trackable, :validatable

  has_one :user_profile, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)

用户配置文件.rb

class UserProfile < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

时间戳_创建_用户_配置文件.rb

class CreateUserProfiles < ActiveRecord::Migration
  def change
    create_table :user_profiles do |t|
      t.string …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails devise

2
推荐指数
1
解决办法
2198
查看次数

标签 统计

devise ×4

ruby-on-rails ×4

ruby ×3

ruby-on-rails-3 ×1