我有两个模型,帖子和类别。它们通过has_many通过关联连接。分类是直通表。
Posts3 JOIN Votes
我的一些帖子不属于任何类别。可以在不选择任何类别的情况下发布。问题是@category永远不会显示为零。我执行此检查
@post= Post.find(params[:Post_id])
@category = @post.categories
即使没有类别,此代码也不会进入else块。这是为什么?在这种情况下如何检查nil?
答案 0 :(得分:3)
@post.categories
返回一个activerecord关系,而不是nil。因为你正在使用rails我会使用present?
<% if @vertiefungsrichtungs.present? %>
# do something
<% else %>
# do something else
<% end %>
答案 1 :(得分:0)
由于您可能有多个类别,因此您可能希望对它们执行某些操作,而不仅仅是检查是否存在任何类别。
在这种情况下,你可以做的一件事是为每个类别渲染一个部分:
<%= render partial: my_category, collection: @category, as: :category %>
你应该有一个部分_my_category.html.erb
:
<%= category %>
如果没有类别,则不会呈现my_category部分,因此,视图中不需要额外的逻辑。