在我的页面中使用 .each 表示未定义的方法

发布于 2024-12-09 05:06:30 字数 1016 浏览 0 评论 0原文

我正在尝试获取名称为“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未定义的方法。

I am trying to get a list of the events with name "Party". I also have a list of all of the events, which works fine. So I put this in my pages_controller:

@events = Event.all.paginate(:page => params[:page])
@upcoming_events = Event.find_by_name("Party")

and here's what my homepage looks like:

<% 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 %>

for some reason when I do find_by_name it messes up the .each in the homepage. What am I doing wrong? It says .each undefined method.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

紙鸢 2024-12-16 05:06:30

动态查找器,例如您的 Event.find_by_name("Party") 返回 Event 类的实例。我认为你需要:

@upcoming_events = Event.where(:name=>"Party")

Dynamic finders like your Event.find_by_name("Party") returns an instance of your Event class. I think you need:

@upcoming_events = Event.where(:name=>"Party")
挽手叙旧 2024-12-16 05:06:30

lucapette的答案包含正确的原因这。

但是,您可以使用动态查找器来查找这些,您可以使用 find_all_by_*

@upcoming_events = Event.find_all_by_name("Party")

这将达到相同的结果。

lucapette's answer as contains the correct reason for this.

You can however use a dynamic finder to find these, you can use find_all_by_*

@upcoming_events = Event.find_all_by_name("Party")

Which will achieve the same result.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文