我有一个模型,由于某种原因,我试图告诉rails如果没有创建任何内容然后渲染添加一个新的显示链接。
<% if @show != blank? %>
<%= link_to 'Add a new show', new_show_path %></br>
<% else %>
<%= render(:partial => 'shows/show', :locals => {:show => @profile.shows.last}) %>
<% end %>
它添加了添加新节目链接,但是一旦创建节目,我仍然只看到链接而不是部分。如果我创建节目并将渲染放在顶部,那么我可以看到它,但如果我删除节目它会返回一个错误。
我也试过这些
<% if @show.present? %>
<%= render(:partial => 'shows/show', :locals => {:show => @profile.shows.last}) %>
<% else %>
<%= link_to 'Add a new show', new_show_path %></br>
<% end %>
<% if @show.blank? %>
<%= link_to 'Add a new show', new_show_path %></br>
<% else %>
<%= render(:partial => 'shows/show', :locals => {:show => @profile.shows.last}) %>
<% end %>
<% if #{model} nil? %>
<%= link_to 'Add a new show', new_show_path %></br>
<% else %>
<%= render(:partial => 'shows/show', :locals => {:show => @profile.shows.last}) %>
<% end %>
似乎永远不会给我我想要的两端。它的ethiers显示链接和nevers显示部分一旦创建或它显示部分但但当我删除它时它给我一个错误。
我如何告诉rails如果没有创建节目来渲染添加新链接,并且一旦创建了一个节目来渲染部分?
答案 0 :(得分:1)
你实际上是通过个人资料过滤这个吗?看起来您正在为个人资料的最后一个节目呈现页面。 (@profile.shows.last
)
<% show = @profile.shows.last %>
<% if show.blank? %>
<%= link_to 'Add a new show', new_show_path %>
<br />
<% else %>
<%= render 'shows/show', :show => show %>
<% end %>
答案 1 :(得分:0)
使用.blank?您试图判断它是否为空的全局变量的方法。如果是数组或哈希。使用.nil?如果它应该是其他任何东西。