很长一段时间潜伏着第一次stander-upper-question-asker。
我刚刚开始了一个新的rails项目,运行在Rails 3.2.13和ruby 2.0上。 它在技术上是一个干净的安装。只有我添加的宝石是pry和activeadmin +所需的元搜索,sass-rails和coffee-rails。遵循active_admin设置说明和belongs_to段落。
/app/admin/houses.rb
ActiveAdmin.register House do
sidebar "Details" do
ul do
li link_to("Bookings", admin_house_bookings_path(house))
end
end
end
/app/admin/bookings.rb
ActiveAdmin.register Booking do
belongs_to :house
end
现在当我访问房屋时,我在rails s终端收到错误消息。
ActionView::Template::Error (undefined local variable or method `house' for #<ActiveAdmin::Views::SidebarSection:0x007fb8b0989a98>):
1: insert_tag renderer_for(:index)
app/admin/houses.rb:4:in `block (3 levels) in <top (required)>'
app/admin/houses.rb:3:in `block (2 levels) in <top (required)>'
如前所述,我没有对rails new app进行任何自定义。据我所知,当我访问/ admin / houses时,确实没有可变房子,因为还没有房子被选中。但是,也没有侧栏,所以这不应该是相关的。
我尝试了没有'house'的链接,就像Zippie建议的那样,但遇到错误“没有路由匹配{:controller =&gt;”admin / bookings“} 而且,这是我的佣金路线http://pastebin.com/i48mVr0e
答案 0 :(得分:1)
我用不同的方式来做到这一点,而不是漂亮和通用,但这里是代码
ActiveAdmin.register House do
sidebar "Details" do
ul do
li link_to "Bookings", "#{request.protocol}#{request.host_with_port}#{request.fullpath}/bookings"
end
end..
end
为了红宝石的缘故,我已经将3个请求移动到了辅助函数中。
答案 1 :(得分:0)
我遇到类似情况,嵌套模型不会创建有效链接。请尝试以下方法:
ActiveAdmin.register House do
sidebar "Details", :only => :edit do
ul do
li link_to("Bookings", admin_house_bookings_path(params[:id]))
end
end
end