1

长时间的潜伏者第一次站在上层提问者。

我刚刚开始了一个新的 Rails 项目,在 Rails 3.2.13 和 ruby​​ 2.0 上运行。从技术上讲,这是一个干净的安装。只有我添加的 gem 是 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 的终端中收到错误消息。

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 新应用程序进行任何自定义。我知道当我访问 /admin/houses 时,确实没有可变房子,因为还没有选择房子。而且,没有侧边栏,所以这不应该是相关的。

我尝试了没有 'house' 的链接,就像 Zippie 建议的那样,但遇到了错误“没有路由匹配{:控制器 =>“admin/bookings”} 而且,这是我的 rake 路由http://pastebin.com/i48mVr0e

4

2 回答 2

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

为了 ruby​​ 的缘故,我已经将 3 个请求移到了 helper 中的一个函数中。

于 2013-04-11T06:17:44.110 回答
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
于 2013-09-25T20:56:25.510 回答