2012-05-19 314 views
0

我是新來的rails,我無法弄清楚語法有什麼問題 - 它似乎是通過第一個塊(對於價格),並給我一個錯誤,一旦我點擊'分數 '=>等等Ruby on Rails語法錯誤

<% dataset = { %> 
<% 'price' => [@wines.each do |wine| %> 
<%     wine.price_750 %>, 
<%    end].to_vector(:scale),%> 

<% 'score' => [@wines.each do |wine| %> 
<%    if current_user.wine_ratings.scoped_by_wine_id(wine.id).exists? %> 
<%    current_user.wine_ratings.find_by_wine_id(wine.id).rating_value %>, 
<%    else %> 
<%     wine.rating %>, 
<%    end%> 
<%    end].to_vector(:scale)%> 
<% }.to_dataset %> 

這裏的錯誤消息:

index.html.erb:13:語法錯誤,意外 ';',希望tASSOC ');' 得分'= > [@ wines.each do | wine |

index.html.erb:13:syntax error,unexpected tASSOC,expected keyword_end ');'score'=> [@ wines.each do | wine |

index.html.erb:20:語法錯誤,意外 '}',期待keyword_end } .to_dataset

任何人都知道我做錯了嗎?

回答

0

只是一個猜測,但我懷疑erb越來越混淆新行,並與所有打開和關閉ERb標籤。嘗試刪除除最外面的標籤外的所有內容;或者,嘗試殺死空白行,或者用瘋狂的方式圍住它。我會建議第一個,因爲它也提高了可讀性,調試速度和人們的第一印象:p

+0

殺空行讓我到另一個錯誤 - 這樣似乎是問題的一部分。我會嘗試報廢額外的erb標籤 - 看看是否讓我獲得任何地方。謝謝! –

2

我認爲你對MVC編程一般感到困惑。這種類型的代碼不屬於視圖,而是屬於您的控制器或視圖幫助器,但通常會盡量在您的視圖中儘量保持這樣的業務邏輯。

+1

是的,我仍然試圖理解很多基本概念 - 我會嘗試將它移動到控制器或視圖助手。謝謝! –

+0

對不起,並不意味着粗魯或卑鄙! :) – alexanderpine

0

不知道這篇文章是否與你的錯誤有關,但是當我第一次搜索到我在RoR收到的錯誤時,這個問題是第一個鏈接。因此粘貼我的解決方案:)。

Missing controller Argument Error