0

我是 Rails 新手,我无法弄清楚语法有什么问题 - 它似乎正在通过第一个块(价格)并且一旦我点击'score' => 等就会给我一个错误......

<% 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 ');'score' => [@wines.each do |wine|

index.html.erb:13: 语法错误,意外的 tASSOC,期待关键字_end ');'score' => [@wines.each do |wine|

index.html.erb:20:语法错误,意外'}',期待keyword_end }.to_dataset

有人知道我在做什么错吗?

4

3 回答 3

2

我认为您通常对 MVC 编程感到困惑。这种代码不属于视图,而是在您的控制器或视图助手中,但是,一般来说,尽量在您的视图中将这样的业务逻辑保持在最低限度。

于 2012-05-19T19:29:13.473 回答
0

不确定这篇文章是否与您的错误有关,但是当我第一次搜索我在 RoR 中收到的错误时,这个问题是第一个链接。所以粘贴我的解决方案:)。

缺少控制器参数错误

于 2012-09-17T14:24:01.080 回答
0

只是一个猜测,但我怀疑erb对换行符以及 ERb 标签的所有打开和关闭感到困惑。尝试删除除最外层标签之外的所有标签;或者,尝试杀死空白行,或者用疯子包围它。我建议第一个,因为它还提高了可读性、调试速度和人们的第一印象:p

于 2012-05-19T19:28:05.327 回答