使用 breadcrumbs_on_rails gem 时出现 NoMethodError
NoMethodError while using breadcrumbs_on_rails gem
我正在尝试使用 gem breadcrumbs_on_rails。
我想在当前面包屑元素中使用我的车辆模型的名称属性,所以我使用符号作为面包屑元素,它调用在同一上下文中定义的相应方法并将元素属性设置为返回值(根据 gem documentation)。
#vehicles_controller.rb
def show
@vehicle = Vehicle.find(params[:id])
@user = User.find(params[:user_id])
add_breadcrumb "home", :root_path
add_breadcrumb "user profile", :current_user
add_breadcrumb :set_vehicle_name, :user_vehicle_path
end
...
private
#return vehicle name for breadcrumb
def set_vehicle_name
@vehicle.name
end
我的看法如下:
#vehicles/show.html..erb
<ol class="breadcrumb">
<%= render_breadcrumbs :separator => " / " %>
</ol>
当我 运行 服务器访问页面时,出现以下错误:
NoMethodError in Vehicles#show
undefined method `set_vehicle_name' for #<#<Class:0x007f40edd52958>:0x007f40f18fe790>
你能告诉我是什么导致了这个错误吗?谢谢
我在私有方法定义后附加 helper_method :set_vehicle_name
使其工作,如 this post.
中指定
The gem uses the context of an ActionView::Base (breadcrumbs.rb#L25)
to evaluate any methods (breadcrumbs.rb#L50). It's complaining because
you haven't made your method in your controller available to the view.
Use helper_method to make it available to your views and it will work.
希望对您有所帮助
我正在尝试使用 gem breadcrumbs_on_rails。
我想在当前面包屑元素中使用我的车辆模型的名称属性,所以我使用符号作为面包屑元素,它调用在同一上下文中定义的相应方法并将元素属性设置为返回值(根据 gem documentation)。
#vehicles_controller.rb
def show
@vehicle = Vehicle.find(params[:id])
@user = User.find(params[:user_id])
add_breadcrumb "home", :root_path
add_breadcrumb "user profile", :current_user
add_breadcrumb :set_vehicle_name, :user_vehicle_path
end
...
private
#return vehicle name for breadcrumb
def set_vehicle_name
@vehicle.name
end
我的看法如下:
#vehicles/show.html..erb
<ol class="breadcrumb">
<%= render_breadcrumbs :separator => " / " %>
</ol>
当我 运行 服务器访问页面时,出现以下错误:
NoMethodError in Vehicles#show
undefined method `set_vehicle_name' for #<#<Class:0x007f40edd52958>:0x007f40f18fe790>
你能告诉我是什么导致了这个错误吗?谢谢
我在私有方法定义后附加 helper_method :set_vehicle_name
使其工作,如 this post.
The gem uses the context of an ActionView::Base (breadcrumbs.rb#L25) to evaluate any methods (breadcrumbs.rb#L50). It's complaining because you haven't made your method in your controller available to the view.
Use helper_method to make it available to your views and it will work.
希望对您有所帮助