2013-03-02 51 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