Rails语法错误,意外')'

YuK*_*agi 0 cucumber ruby-on-rails-3

这将是一个非常愚蠢的问题,我几乎讨厌自己提出这个问题,但现在这样.

当我运行我的Cucumber测试时,我得到一个"语法错误,意外的')'",使用以下代码:

在我的用户模型中:

def member?(gallery)
    array = []
    self.groups.each do |group|
        array << group.id
    end
    if array.include?(gallery.group.id)
        true
    end
end
Run Code Online (Sandbox Code Playgroud)

在我看来:

<ul>
<% @galleries.each do |gallery| %>
    <% if current_user.member?(gallery) %>
    <li>
        <%= link_to gallery.title, gallery %>
    </li>
    <% end %>
<% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)

编辑:这是错误的重要部分:

 ~/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 
            ^
Run Code Online (Sandbox Code Playgroud)

编辑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?'
Run Code Online (Sandbox Code Playgroud)

我尝试了一些不同的东西,而且我必须遗漏一些非常微不足道的东西.另外一双眼睛将非常感激.

非常感谢你.

Gaz*_*ler 5

<%= if current_user.member?(gallery) %>
Run Code Online (Sandbox Code Playgroud)

应该:

<% if current_user.member?(gallery) %>
Run Code Online (Sandbox Code Playgroud)

并非没有=,它意味着输出,您的代码正在尝试输出if块的响应.