我这里有两个模特,群组和帖子。帖子属于组,组有很多帖子。这是我的问题。我有一个组的索引页面。我试图让侧边栏显示最新帖子列表。由于嵌套路由,我无法链接到帖子(我无法获得该组的正确参数,因为这一切都出现在组索引页面上)。以下是我第一次尝试这样做的方法:
<% @latest_posts.each do |post| %>
<li><%= link_to post.title, group_post_path(@group, post) %></li>
<li><%= post.group.title %></li>
<% end %>
我已经在同一个视图中浏览了一系列组:
<% @groups.each do |group| %>
<div class="table-cell">
<%= link_to group.title, group %>
</div>
<div class="table-cell">
<%= group.description.truncate(70) %>
</div>
<% end %>
因此,在我的组控制器中,我不能只将@group实例变量放入group_post_path参数中。这是我的控制者:
def index
@latest_posts = Post.order('created_at DESC').limit(20)
@groups = Group.order('created_at DESC').page(params[:page]).per(25)
end
所以我有两个问题。我的主要观点是我无法链接到帖子。我认为这样可行,但也不适用于那个(我设置了友好ID,所以我需要链接到组名而不是ID。)
<%= link_to post.title, group_post_path(post.group_id, post) %>
但是父母的任何属性都不可用。
<%= post.group.title %>
生成
undefined method `title' for nil:NilClass
在params中尝试它也是一样。
<%= link_to post.title, group_post_path(post.group.title, post) %>
我的模特:
class Post < ApplicationRecord
belongs_to :group
class Group < ApplicationRecord
has_many :posts
我怎样才能至少访问父属性?