2012-02-20 107 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 %> 

,它似乎從來沒有給我什麼,我期待的兩端。這ethiers顯示我的鏈接和訥韋爾顯示了部分曾經創造或它顯示的部分,但是當我刪除它,它給了我一個錯誤。

我怎樣才能知道,如果創建沒有任何表演來呈現添加新的鏈接,一旦有一個節目創建呈現偏軌?

+0

你如何定義'@ show' – apneadiving 2012-02-20 23:00:44

+0

嘗試:如果定義了'? @ show' – apneadiving 2012-02-20 23:01:14

+0

您是否嘗試了@ @ show.nil?'(不知道這是您的意思嗎?#{model} nil?' – Adnan 2012-02-20 23:03:34

回答

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 2012-02-20 23:18:14

+0

不,您不必包含<% end %>,因爲它不是一個循環或其他形式的塊,它是一個單行分配。那裏有一個關閉<% if %>塊。 – 2012-02-21 03:35:32

0

使用.blank?方法爲你試圖告訴它是否爲空的全局變量。如果它的數組或散列。使用.nil?如果它應該是別的。