1

私はレールエンジンを構築しています。次の 2 つのモデル クラスがあります。

module LandingPageEng
    class LandingPage < ActiveRecord::Base
        attr_protected # just for debugging right now
        has_many :slide_show_images, :dependent => :destroy
        accepts_nested_attributes_for :slide_show_images, allow_destroy: true
    end
end

2 番目のクラスは次のとおりです。

module LandingPageEng
    class SlideShowImage < ActiveRecord::Base
        attr_accessible :image, :landing_page_id
        belongs_to :landing_page 

        validates :image, :presence => true
    end
end

それらに関連付けられているテーブルは、landing_page_eng_landing_page と landing_page_eng_slide_show_image です。

コンソールで次のコマンドを実行すると、エラー NameError: uninitialized constant SlideShowImage.

1.9.3-p194 :001 > LandingPageEng::LandingPage.new({"title"=>"wd", "tagline"=>"wed",     "slide_show_images"=>{"_destroy"=>""}})
NameError: uninitialized constant SlideShowImage
    from /Users/martinjlogan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-  3.2.6/lib/active_support/inflector/methods.rb:229:in `block in constantize'
    from /Users/martinjlogan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/inflector/methods.rb:228:in `each'
    from /Users/martinjlogan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/inflector/methods.rb:228:in `constantize'
    from /Users/martinjlogan/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
<snip>

私はこれについて頭を悩ませてきましたが、それを理解することはできません。どんな助けでも大歓迎です。

4

1 に答える 1

0

これをすばやくテストするためのエンジンを備えたRails 3のセットアップはありませんが、問題は構成にあると思いhas_manyます。という名前のクラスを探してSlideShowImageいますが、クラス名はLandingPageEng::SlideShowImageです。

:class_nameあなたにオプションを追加すると、has_manyこれが修正されると思います。

http://railsapi.com/doc/rails-v3.0.8rc1/classes/ActiveRecord/Associations/ClassMethods.html#M004956

于 2012-06-13T05:18:39.313 に答える