Rails 3.2.13 active_admin undefined局部变量或方法

时间:2013-04-10 15:59:10

标签: ruby-on-rails ruby activeadmin

很长一段时间潜伏着第一次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

2 个答案:

答案 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