未定义的方法

时间:2012-10-21 15:23:27

标签: ruby-on-rails activeadmin

我有这个课程。

用户:

class User < ActiveRecord::Base
  attr_accessible :email, :name
  has_many :berichten
end

类别:

class Category < ActiveRecord::Base
  attr_accessible :name
  has_many :berichten
end

Berichten:

class Berichten < ActiveRecord::Base
  attr_accessible :bericht, :user
  belongs_to :user
  belongs_to :category
end

之后我创建了项目。

但是当我转到

http://localhost:3000/admin/berichtens 

我看到此消息显示:

undefined method `user_id_contains' for #<MetaSearch::Searches::Berichten:0x007f72300bc8f0>

这可能是因为berichten是一个嵌套的路线,如下所示:

Tamara::Application.routes.draw do
  ActiveAdmin.routes(self)

  devise_for :admin_users, ActiveAdmin::Devise.config

  resources  :users

  resources :category do 
     resources :berichten
  end 
 end

如何解决这个问题?

鲁洛夫

编辑1:您可以在此处找到整个源代码树:https://github.com/roelof1967/tamara_site/tree/admin_section

编辑2:此处为开发日志:https://gist.github.com/3933601

编辑3:这里是控制器:https://gist.github.com/3937461

2 个答案:

答案 0 :(得分:4)

由于我是1级用户所以我无法对上述问题发表评论。请分享您的相关控制器代码。问题出在控制器中。

答案 1 :(得分:1)

您的berichtens表没有user_id和category_id字段: https://github.com/roelof1967/tamara_site/blob/admin_section/db/schema.rb#L49-54

使用

创建迁移文件
add_column :berichtens, :user_id, :integer
add_column :berichtens, :category_id, :integer