2013-01-10 71 views
0

是否可以在視圖中定義新變量?
我有這樣的代碼。但我得到的錯誤undefined local variable or method "who"是否可以在視圖中定義新變量?

<% @posts.each do |post| %> 

    <tr id="<%= dom_post_id(post) %>"> 

     <% if post.user.id == who %> 
      <td><%= post.user.nickname if post.user %></td> 
      <td><div class="bubble me"><%= post.body %></div></td> 
      <td></td> 
     <% else %> 
      <td></td> 
      <td><div class="bubble you"><%= post.body %></div></td> 
      <td><%= post.user.nickname if post.user %></td>  
     <% end %> 
    </tr> 
    <% who = post.user.id %> 
<% end %> 

回答

4

是的,它是可能的,但只是作爲普通的紅寶石,你應該給它分配一個值,東西比較之前。

這裏:

<% if post.user.id == who %> 

who尚未在任何地方見過這麼紅寶石不知道這是什麼。

+0

由於這是完美的答案之前。順便說一句,它不工作,我想要它。你知道爲什麼嗎?如果用戶不同,它應該顯示在不同的​​中。 – Foo

1

的問題是在這裏:

<% if post.user.id == who %> 

您還沒有定義who呢。您稍後用<% who = post.user.id %>來定義它,但是當首次輸入循環時,尚未定義who

您需要在使用它之前對其進行定義。

1

移動頂誰真正使用它

<tr id="<%= dom_post_id(post) %>"> 
    <% who = post.user.id %> 
    <% if post.user.id == who %> 
     <td><%= post.user.nickname if post.user %></td> 
     <td><div class="bubble me"><%= post.body %></div></td> 
     <td></td> 
    <% else %> 
     <td></td> 
     <td><div class="bubble you"><%= post.body %></div></td> 
     <td><%= post.user.nickname if post.user %></td>  
    <% end %> 
</tr> 

HTH

+0

然後它會一直判斷你是同一個人在你的邏輯 – Foo

+0

你的錯誤不是由於邏輯,而是使用未定義的變量。所以我的(以及所有其他答案)將解決這個問題。如果你想實現一個邏輯,那麼你應該提供更多關於你想要做什麼的信息 – sameera207

相關問題