2011-09-14 157 views
0

这将是一个非常愚蠢的问题,我几乎讨厌自己问这个问题,但是在这里。Rails语法错误,意外''''

当我跑我的黄瓜测试中,我得到一个“语法错误,意外‘)’”使用下面的代码:

在我的用户模型:

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?' 

我已经尝试了一些不同的东西,我必须失去了一些东西真是小巫见大巫。另一双眼睛将不胜感激。

非常感谢。

+2

erb文件中的if应该不是'<%=';看看是否有帮助。 –

+0

我试过了,出现了一个新的错误... – YuKagi

+0

画廊没有一个组?我不知道18号线是什么。 –

回答

5
<%= if current_user.member?(gallery) %> 

应该是:

<% if current_user.member?(gallery) %> 

这并不是说没有=,这意味着输出和你的代码试图输出IF块的响应。

+0

我试过了,现在出现了一个新的错误。你对这条线有什么想法?非常感谢你! – YuKagi

+1

看起来像'画廊。group'是'nil',因此获得了'nil'的id--在你的'member?'函数中哪行是第18行? –

+0

第18行是“if array.include?(gallery.group.id)”一行... – YuKagi

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的另一个问题!