Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails NoMethodError未定义的方法`name';零级:零级_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails NoMethodError未定义的方法`name';零级:零级

Ruby on rails NoMethodError未定义的方法`name';零级:零级,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有两个模型的职位和类别。我试图在我的文章索引和显示视图中显示每个文章的类别名称。我正在使用表联接。但问题是,尽管在我的show视图中,类别显示正确,但它在索引视图中为nil:NilClass提供了一个NoMethodError:undefined方法'name'。我不明白为什么它显示在我的show视图中,而不是index视图中 index.html.erb <% @posts.each do |post| %> <h2><%= link_to post.tit

我有两个模型的职位和类别。我试图在我的文章索引和显示视图中显示每个文章的类别名称。我正在使用表联接。但问题是,尽管在我的show视图中,类别显示正确,但它在索引视图中为nil:NilClass提供了一个NoMethodError:undefined方法'name'。我不明白为什么它显示在我的show视图中,而不是index视图中

index.html.erb

<% @posts.each do |post| %>
  <h2><%= link_to post.title, post %></h2>
  <p>বিভাগঃ <%= post.category.name %></p>
  <p><%= post.body %></p>
  <%= link_to 'দেখুন', post, class: "button tiny" %>&nbsp;
  <%= link_to 'সম্পাদনা', edit_post_path(post), class: "button tiny" %>
<% end %>

বিভাগঃ 

show.html.erb

<h2><%= link_to @post.title, @post %></h2>
<h5>বিভাগঃ <%= @post.category.name %></h5>
<p><%= @post.body %></p>

বিভাগঃ 

post.rb

class Post < ActiveRecord::Base
  validates_presence_of :title, :body, :category
  has_many :comments
  belongs_to :category
end
class Post
category.rb

class Category < ActiveRecord::Base
  has_many :posts
end
类别
您的
@posts
实例变量包含
Post
的实例,无论出于何种原因,这些实例都与父
类别
无关。通过在打印类别名称之前检查每个
Post
是否有关联的
Category
,可以避免出现
NilClass
错误:

<%= post.category.name if post.category %>
<% @posts.each do |post| %>
  <% if post.category %> # Check for parent category
    # Remaining code
  <% end %>
<% end %>