2012-02-20 19 views
0

私はモデルを持っていますが、なんらかの理由で、何も作成されていない場合に新しい表示リンクを追加するように指示しています。空白を確認しますか?空白ですか?

<% 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 %> 

を試みた、私が両端のを探しています何私を与えることはありませんように思われます。それは倫理師が私にリンクを示して、一度作成された部分を表示したり、部分を表示しますが、削除するとエラーになります。

新しいリンクを追加するための番組が作成されていない場合や、その部分をレンダリングするために作成された番組がある場合、レールにその旨を伝えるにはどうすればよいですか?

+0

'@ show'をどのように定義しますか – apneadiving

+0

try:'定義されていれば? @ show' – apneadiving

+0

'@ show.nil?'を試したことがありますか?(これは '#{model} nil? 'の意味ですか? – Adnan

答えて

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 %> 
+0

正確に何を探していたのですか?ありがとう、私は最初の行に 'end'を含める必要がありますか?<%show = @ profile.shows.last%>'? – coletrain

+0

いいえ、<% end %>を含める必要はありません。ループや他の形式のブロックではないため、1行の割り当てです。そこにあるブロックは、<% if %>ブロックを閉じます。 –

0

.blank?あなたが空であるかどうかを伝えようとしているグローバル変数のメソッド。その配列またはハッシュの場合。 .nilを使用しますか?それが何か他のものであると思われるならば。

関連する問題