Ruby on rails Rails-发布模型/用户关联视图返回用户对象
在我的帖子索引视图中,它以用户身份显示“#”,当尝试post.user.email时,它会给我一个错误,当在单视图页面上使用@post.user.email时,它会给我正确的电子邮件 我相信这意味着我的联想错了Ruby on rails Rails-发布模型/用户关联视图返回用户对象,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,在我的帖子索引视图中,它以用户身份显示“#”,当尝试post.user.email时,它会给我一个错误,当在单视图页面上使用@post.user.email时,它会给我正确的电子邮件 我相信这意味着我的联想错了 class Post < ActiveRecord::Base belongs_to :user acts_as_commentable end class User < ActiveRecord::Base # Include default devise
class Post < ActiveRecord::Base
belongs_to :user
acts_as_commentable
end
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
has_many :posts, autosave: true, dependent: :destroy
def set_default_role
self.role ||= :user
end
end
t.references :user, index: true
class Post:新建记录?
有很多:posts,autosave:true,dependent::destroy
def set_默认_角色
self.role | |=:用户
结束
结束
t、 引用:用户,索引:true
最后一行代码是我在迁移后使用的代码,我想这可能就是我搞错的地方吧?应该是:user\u id吗
抱歉,忘记粘贴正在显示的内容
#<User:0x007fa7845b9310>
#
当它应该是一个电子邮件地址时,它给了我什么
def index
@posts = Post.all
end
<% @posts.each do |post| %>
<tr>
<td><%= post.user %></td>
<td><%= post.title %></td>
<td><%= post.content %></td>
<td><%= post.subject %></td>
<td><%= link_to 'Show', post %></td>
<td><%= link_to 'Edit', edit_post_path(post) %></td>
<td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
def索引
@posts=Post.all
结束
将只输出用户
对象
如果表和关联设置正确,则需要专门调用用户详细信息,如下所示:
<%= post.user.created_at %>
这将输出整个
user
对象,您可以在其中识别它所具有的属性,从而更好地了解它将返回的内容。之后,发布返回的数据&我们将更好地提供帮助您可以为索引操作代码添加Posts控制器吗。如果您试图引用视图页面中的变量,它们需要以“@”开头。此类“@”起始变量在控制器中定义,并可供视图访问。因此,如果在控制器中定义@post
,它将在视图中可访问,但如果只定义post
,它将仅在控制器中可访问,而在视图中不可访问。@steve我添加了post#索引和视图片段。
是用户对象的外观。因此,如果post.user
返回#
,那么您就知道该帖子属于某个用户,这很好。当你在每个`块中尝试时,会出现什么样的错误?一个问题是,每次页面刷新时,数字都会发生变化,这是不好的。。。posts#show确实显示了正确的关联,并允许我调用post.user.email您是否收到类似“未定义的方法电子邮件用于Nil类”的错误?谢谢,如果其他人有类似问题,我在上面的评论员steve的帮助下找到了解决方案。我有一篇没有相关用户的帖子,这导致nilClass出现问题。
<%= debug @post.user %>