![](/img/trans.png)
[英]Can a Rails helper_method use yield as if it was invoked in the corresponding 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
等同于将.all
到Category.all
。
请尝试:
<% main_menus.each do |menu| %>
<%= menu.title %>
<% end %>
请注意,如果您不打算使用@main_menus
变量,则可以将helper方法简化为仅返回Category.all
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.