undefined方法`scoped'用于Model:Class with Formtastic和MongoMapper

时间:2012-08-05 13:30:07

标签: ruby-on-rails-3 ruby-on-rails-3.2 formtastic mongomapper

我很难制作MongoMapper& Formtastic一起工作。

为了解决这个问题,我用最少的代码创建了一个虚拟应用程序。

我有2个主要型号(Cabinet& Device),它们之间有“many / belongs_to”关系,还有一个用于Cabinet资源的脚手架控制器。

当我用一个简单的“key”字段声明之外的任何东西加载一个非常基本的formtastic形式(见下文)时,我在控制器中得到一个“NoMethodError”异常,出现以下错误“undefined method`s scoped”for Device :Class“引用_form.html.haml partial的第4行。

对此有何看法?没有通过Google或StackOverflow找到任何有用的东西......

应用程序/模型/ cabinet.rb

 class Cabinet
  include MongoMapper::Document
  safe

  key :label, String, :required => true
  many :devices
end

应用程序/模型/ device.rb

class Device
  include MongoMapper::Document
  safe

  key :label, String, :required => true
  belongs_to :cabinet
end

应用程序/视图/柜/ _form.html.haml

= semantic_form_for @cabinet do |f|
  = f.inputs do
    = f.input :label
    = f.input :devices
  = f.actions

我没有包含脚手架控制器,因为我没有以任何方式触及脚手架代码。

使用的宝石版本:

Gems included by the bundle:
  * actionmailer (3.2.7)
  * actionpack (3.2.7)
  * activemodel (3.2.7)
  * activerecord (3.2.7)
  * activeresource (3.2.7)
  * activesupport (3.2.7)
  * arel (3.0.2)
  * bson (1.6.4)
  * bson_ext (1.6.4)
  * builder (3.0.0)
  * bundler (1.1.5)
  * coffee-rails (3.2.2)
  * coffee-script (2.2.0)
  * coffee-script-source (1.3.3)
  * erubis (2.7.0)
  * execjs (1.4.0)
  * formtastic (2.2.1)
  * haml (3.1.6)
  * haml-rails (0.3.4)
  * hike (1.2.1)
  * hpricot (0.8.6)
  * i18n (0.6.0)
  * journey (1.0.4)
  * jquery-rails (2.0.2)
  * json (1.7.4)
  * libv8 (3.3.10.4)
  * mail (2.4.4)
  * mime-types (1.19)
  * mongo (1.6.4)
  * mongo_mapper (0.11.2)
  * multi_json (1.3.6)
  * plucky (0.5.1)
  * polyglot (0.3.3)
  * rack (1.4.1)
  * rack-cache (1.2)
  * rack-ssl (1.3.2)
  * rack-test (0.6.1)
  * rails (3.2.7)
  * railties (3.2.7)
  * rake (0.9.2.2)
  * rdoc (3.12)
  * ruby_parser (2.3.1)
  * sass (3.1.20)
  * sass-rails (3.2.5)
  * sexp_processor (3.2.0)
  * sprockets (2.1.3)
  * therubyracer (0.10.1)
  * thor (0.15.4)
  * tilt (1.3.3)
  * treetop (1.4.10)
  * tzinfo (0.3.33)
  * uglifier (1.2.7)

1 个答案:

答案 0 :(得分:0)

mongomapper没有“作用域”类方法。这是ActiveRecord和Mongoid的一个功能。