2个模块之间的多对多关联。它在控制台中完美运行,但在视图中,我得到的对象引用如下所示:
#<Author:0x0000000434bf80>
#<Author:0x000000043485b0>
这显示在我的视图中,其中包含以下代码:
<h1 class="page-title">Articles</h1>
<hr>
<div class="category-container">
<ul class="category-titles">
<% @cat.each do |c| %>
<li><%= link_to c.catName, category_path(c) %></li>
<% end %>
</ul>
</div>
<br><br><br><hr>
<% @art.each do |t| %>
<p class="articles-list-page"><%= link_to t.artTitle, article_path(t) %></p>
<p><%= t.author %></p>
<% end %>
以下是我在作者模型中的关联
class Author < ActiveRecord::Base
has_many :articles
end
这是我在文章模型中的关联
class Article < ActiveRecord::Base
belongs_to :category
belongs_to :author
end
我无法理解为什么它在控制台中运行良好但在视图中不运行
答案 0 :(得分:0)
您应该将作者属性委托给Article
模型
class Article < ActiveRecord::Base
belongs_to :category
belongs_to :author
delegates :authName, allow_nil: true
end
同样在您的控制器中使用以下代码
class ArticleController < ApplicationController
def index
@art = Article.includes(:author).all
end
end
在你的观点中使用像bellow
<% @art.each do |t| %>
<p class="articles-list-page"><%= link_to t.artTitle, article_path(t) %></p>
<p><%= t.authName %></p>
<% end %>