ruby on rails active admin gem - 如何显示我的用户的名字和姓氏

时间:2014-03-05 01:17:20

标签: ruby-on-rails-4 activeadmin

我在rails 4项目中安装了活动的admin gem。效果很好......

但是列'First name'和'Last name'是空的 - 列在那里,但它们是空的。当一个人注册我的应用程序并设计他们必须填写的字段时:

first name
second name
email
password
confirm password

电子邮件和密码列显示在我的活动管理员中,相关的用户详细信息列在这些列中,但没有名字和名字。有关如何将此信息显示在管理员方面的任何想法?

仔细观察,我认为我的问题更根深蒂固。在Rails控制台中,当我执行User.last时,我得到:

  User Load (0.6ms)  SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1
 => #<User id: 3, email: "jimcollins@gmail.com", encrypted_password: "$2a$10$mOSzzXy1SZxQ1gVQbUqG9uQsam0YnaiLzXOJYne3aI58...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 2, current_sign_in_at: "2014-03-03 13:16:10", last_sign_in_at: "2014-03-03 13:12:16", current_sign_in_ip: "127.0.0.1", last_sign_in_ip: "127.0.0.1", created_at: "2014-03-03 13:12:16", updated_at: "2014-03-03 13:17:07", first_name: nil, last_name: nil, provider: nil, uid: nil, name: nil, oauth_token: nil, oauth_expires_at: nil> 
2.0.0p247 :003 > 

所以first_name和last_name是'nil'。我应该在哪里设置这些值?对不起,Rails的初学者......

2 个答案:

答案 0 :(得分:1)

如果没有在ActiveAdmin寄存器中看到任何代码,很难确定问题是什么。如果用户在表单字段中输入此信息,但未保存,则很可能是Rails 4强参数的问题。如果用户注册,则可能存在您不允许该表单控制器上的first_namelast_name参数的问题。如果您要从user管理员面板手动添加这些用户,则需要确保在注册表中的first_name方法调用中添加last_namepermit_params

答案 1 :(得分:1)

使用Rails 4,Ruby 2.0,并安装了Devise,我使我的应用程序控制器看起来像这样,现在我将first_namelast_name存储在我的数据库中:

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception

   before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation, :first_name, :last_name) }

   # might need the code below for account updating
   # devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:email, :password, :password_confirmation, :firstname, :lastname) }
  end

end