这将是一个非常愚蠢的问题,而且我几乎讨厌自己提出这个问题,但是这里也是如此。
当我运行我的Cucumber测试时,我得到一个“语法错误,意外的”)'“使用以下代码:
在我的用户模型中:
def member?(gallery)
array = []
self.groups.each do |group|
array << group.id
end
if array.include?(gallery.group.id)
true
end
end
在我看来:
<ul>
<% @galleries.each do |gallery| %>
<% if current_user.member?(gallery) %>
<li>
<%= link_to gallery.title, gallery %>
</li>
<% end %>
<% end %>
</ul>
编辑:以下是错误的重要部分:
~/Coding/Rails/galleryTest/app/views/galleries/index.html.erb:8: syntax error, unexpected ')', expecting keyword_then or ';' or '\n'
... current_user.member? gallery );@output_buffer.safe_concat('
... ^
~/Coding/Rails/galleryTest/app/views/galleries/index.html.erb:13: syntax error, unexpected keyword_end, expecting ')'
'); end
^
编辑2:删除'='时出现错误:
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id (ActionView::Template::Error)
./app/models/user.rb:18:in `member?'
我尝试了一些不同的东西,而且我必须遗漏一些非常微不足道的东西。另外一双眼睛将非常感激。
非常感谢。
答案 0 :(得分:5)
<%= if current_user.member?(gallery) %>
应该是:
<% if current_user.member?(gallery) %>
不是没有=
,它表示输出,而您的代码正在尝试输出if块的响应。
答案 1 :(得分:0)
好吧,这就是我所拥有的,以及它似乎如何运作:
在我的用户模型中:
def member?(gallery)
array = self.groups.collect { |g| g.id }
if array.include?(gallery.group_id)
true
end
end
在我看来:
<% if user_signed_in? %>
<ul id="private_galleries">
<% @galleries.each do |gallery| %>
<% if current_user.member?(gallery) %>
<li>
<%= link_to gallery.title, gallery %>
</li>
<% end %>
<% end %>
</ul>
<% end %>
<ul>
<% @galleries.each do |gallery| %>
<% if gallery.group_id == nil %>
<li>
<%= link_to gallery.title, gallery %>
</li>
<% end %>
<% end %>
</ul>
我的测试现在运行正常,但它们没有通过,这很奇怪,因为当我使用组设置组和图库并在网站运行时查看它们时,它们似乎正在显示,这只是意味着我的测试可能会受到影响。那将是早上的任务,也可能是StackOverflow上的另一个问题!