我正在尝试获取名为“Party”的事件列表。我还有一份所有活动的清单,工作正常。所以我把它放在我的pages_controller中:
@events = Event.all.paginate(:page => params[:page])
@upcoming_events = Event.find_by_name("Party")
这就是我的主页的样子:
<% if !signed_in? %>
<%= link_to "Sign up now!", signup_path, :class => "signup_button round" %>
<ul class="users">
<% @upcoming_events.each do |event| %>
<%= render :partial => 'events/eventhome', :locals => {:event => event} %>
<% end %>
</ul>
<% else %>
<li><%= link_to "Users", users_path %></li>
<li><%= link_to "Events", events_path %></li>
<li><%= link_to "Profile", current_user %></li>
<h3>Upcoming Events</h3>
<ul class="users">
<% render @events %>
</ul>
<% end %>
由于某些原因,当我执行find_by_name时,它会弄乱主页中的.each。我究竟做错了什么?它说.each undefined方法。
答案 0 :(得分:4)
Dynamic finders就像您的Event.find_by_name("Party")
返回您的Event类的实例一样。我想你需要:
@upcoming_events = Event.where(:name=>"Party")
答案 1 :(得分:4)
lucapette's answer包含正确的理由。
然而,您可以使用动态查找器来查找这些,您可以使用find_all_by _ *
@upcoming_events = Event.find_all_by_name("Party")
哪个会达到相同的效果。