【发布时间】:2018-10-25 15:40:29
【问题描述】:
我是 Rails 新手。我为我的帖子创建了一个类别模型,但是当我去显示与特定类别关联的所有帖子时,我得到一个 NameError 页面
这是我的类别show.html.erb 文件:
<h1> <%= "Category: " + @category.name %></h1>
<div align="center">
<%= will_paginate @category_posts %>
</div>
<%= render 'posts/post', obj: @category_posts %>
<div align="center">
<% will_paginate @category_posts %>
</div>
我正在渲染 _post.html.erb 部分以显示在我的帖子文件夹中定义的帖子。
看起来问题与下面代码的第一行有关,因为错误消息指向 _post.html.erb 代码中的 <li id="post-<%= post.id %>">:
<li id="post-<%= post.id %>">
<span class="title"> <%=link_to post.title, post_path(post) %> </span>
<span class="content"><%= truncate(post.content, length: 100) if post.content? %></span>
<span class="content"> <%= image_tag post.picture.url if post.picture? %> </span>
<span class="content">
<% if post.category.any? %>
<p><%= render post.category %></p>
<% end %>
</span>
</li>
这是我的category 控制器文件,我在其中确定了“显示”方法:
class CategorysController < ApplicationController
before_action :require_admin, except: [:index, :show]
def index
@categories = Category.paginate(page: params[:page])
end
def new
@category = Category.new
end
def create
@category = Category.new(category_params)
if @category.save
flash[:success] = "Category created successfully"
redirect_to categories_path
else
render 'new'
end
end
def show
@category = Category.find(params[:id])
@category_posts = @category.posts.paginate(page: params[:page], per_page: 5)
end
后模型:
class Post < ApplicationRecord
belongs_to :user
has_many :post_categories
has_many :categories, through: :post_category
default_scope -> { order(created_at: :desc) }
mount_uploader :picture, PictureUploader
validates :user_id, presence: true
validates :title, presence: true
validate :picture_size
private
# validates the size of an upload picture
def picture_size
if picture.size > 5.megabytes
errors.add(:picture, "should be less than 5MB")
end
end
end
一般的想法是,例如,当我转到localhost/categories/1 时,我应该拥有与该类别相关的所有帖子。
谁能帮我解决这个问题?
【问题讨论】:
-
你有
<% render 'posts/post', obj: @category_posts %>,应该是<%= render 'posts/post', obj: @category_posts %>。是不是笔误? -
这是一个错字。我忘了
= -
我还没有使用
object传入本地人的方式来处理部分内容。当部分路径中有目录时,它实际上是否按预期工作?
标签: ruby-on-rails ruby view ruby-on-rails-5 model-associations