2013-03-02 53 views
0

我是新來的鐵軌。在決定發佈問題之前,我正在尋找答案。我找到的2個答案對我不起作用。用戶名rails設備

所以我有一個模型「後」和「設計」寶石安裝和配置。

然後我補充說: 「用戶名」 爲用戶

然後關係

用戶 - >有很多,崗位 - >屬於用戶。

但我卡住了。

我該如何檢索用戶名以使用郵件進行呈現?

<%= post.user.username =%>?

還有什麼需要做的?

post.rb

class Post < ActiveRecord::Base 
    attr_accessible :postbody, :posttitle 
    validates_presence_of :postbody, :posttitle 
    belongs_to :user 

end 

user.rb class User < ActiveRecord::Base

# Include default devise modules. Others available are: 
    # :token_authenticatable, :confirmable, 
    # :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :username, :email, :password, :password_confirmation, :remember_me 
    # attr_accessible :title, :body 

    has_many :posts 

end

+0

請具體和描述您的問題,你有問題。 – swapab 2013-03-02 14:16:44

+0

問題是我想呈現一個帖子已經創建的用戶名。所以它會顯示在文章 – igrec 2013-03-02 14:53:54

回答

0

你沒有提及你有什麼類型的錯誤。 但它接縫,你可能有關於未定義的屬性的錯誤。 通過在User模型中添加attr_accessible :username使用戶名可訪問。

+0

旁邊。很抱歉,我確實把用戶名放入了attr_accessible。錯誤是'code'(未定義方法'用戶名'爲零:NilClass) – igrec 2013-03-02 12:31:01

+0

好像你的帖子沒有任何關聯用戶 – 2013-03-02 15:37:10

+0

謝謝大家。我所做的就是放入帖子表user_id中。然後進入後控制器創建'@post = current_user.posts.build(params [:post])',後顯示'<%= @ post.user.username%>'。再次感謝您的幫助 – igrec 2013-03-02 22:33:07

0

我想你的意思是「設計」,對吧? 我不確定你的錯誤(可能顯示整個遷移),但我會建議對數據庫執行重置操作,而不是添加遷移。 只要把

t.string :username 

到create_users遷移。然後

rake db:migrate:reset 
+0

嗨,是的,它的設計,對不起。 OK我重置它,它擦去我所有的富帖子這裏是我的移民'類AddUsernameToUsers <的ActiveRecord ::遷移 DEF改變 add_column:用戶, t.string:用戶名 t.string:命名 結束 結束 ' – igrec 2013-03-02 13:47:55

+0

很高興看到您的模型(帖子和用戶)和創建用戶遷移。順便說一句:你不需要有一個「AddUsernameToUsers」遷移,當你沒有重置問題。 – Sadik 2013-03-02 14:28:07

+0

當然,我已經將它添加到主帖子中,再次感謝 – igrec 2013-03-02 14:36:27