繁体   English   中英

来自helper_method的Ruby on Rails 5.1无法在View中获取数据

[英]Ruby on Rails 5.1 from helper_method can not get Data in View

我是RoR的新手,并且正在使用helper_method从ActiveRecord传递数据。 我的代码如下:

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  helper_method :main_menus


  def main_menus
    @main_menus = Category.all
  end
end

查看: application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <title><%= yield(:title) %></title>
    <%= csrf_meta_tags %>
    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <div id="wrapper">
      <div class="wrapper-inner">

        <%= render 'layouts/header' %>
        <%= render 'layouts/menu' %>

        <%= yield(:body) %>
      </div>
    </div>

    <%= render 'layouts/javascript' %>
  </body>
</html>

Menu.html.erb:

<%= main_menus.all do |menu| %>
    <%= menu.title %>
<% end %>

仅显示此:

#<Category::ActiveRecord_Relation:0x00007f1c0e26c3d0>

请帮助我。 我的错误在哪里?

因此,您显然使用all来遍历main_menus帮助器中的返回值,我想应该是each ,否则all等同于将.allCategory.all

请尝试:

<% main_menus.each do |menu| %>
  <%= menu.title %>
<% end %>

请注意,如果您不打算使用@main_menus变量,则可以将helper方法简化为仅返回Category.all

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM