我正在尝试使用gem breadcrumbs_on_rails。
我想在当前的breadcrumbs元素中使用我的车辆模型的name属性,所以我使用Symbol作为Breadcrumb Element,它调用在相同上下文中定义的相应方法,并将Element属性设置为返回值(根据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>
你能告诉我是什么导致了这个错误吗?感谢
答案 0 :(得分:0)
我按照this帖子中的说明,在私有方法定义之后添加了helper_method :set_vehicle_name
。
希望它可以提供帮助gem使用ActionView :: Base(breadcrumbs.rb#L25)的上下文 评估任何方法(breadcrumbs.rb#L50)。它抱怨是因为 您还没有将控制器中的方法用于视图。
使用helper_method使其可用于您的视图,它将起作用。