2012-05-19 311 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