2014-03-05 167 views
0

我在我的rails 4項目中安裝了活動的admin gem。很好的作品....ruby​​ on rails active admin gem - 我如何顯示我的用戶的名字和姓氏

但是'名字'和'姓氏'列是空的 - 列在那裏,但它們是空的。當一個人的標誌到我與色器件的應用程序,他們必須填寫的字段有:

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: "[email protected]", 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和姓氏是 '零'。我應該在哪裏設置這些值?對不起,在Rails的初學者很...

回答

1

很難確定問題是什麼,沒有在ActiveAdmin寄存器中看到代碼的任何。如果用戶在表單字段中輸入這些信息,但它沒有得到保存,這很可能是Rails 4的強大參數問題。如果用戶註冊,則可能會出現問題,您不允許該窗體控制器上的first_namelast_name參數。如果要從user管理面板手動添加這些用戶,則需要確保將first_namelast_name添加到您的註冊表中的permit_params方法調用中。

+0

感謝的是,理解了它而且我會發布其他人的確切代碼,以瞭解如何使其工作。必須處理強大的參數。現在,任何想法如何我可以得到誰登錄Facebook的人first_name和last_name? :) – CHarris

+0

其實,Facebook的first_name和last_name很容易:find_for_facebook_auth方法中的user.first_name = auth.info.first_name和user.last_name = auth.info.last_name – CHarris

1

使用Rails 4和Ruby 2.0,並且已經安裝設計,我做我的應用程序控制器這個樣子的,現在我得到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