いいえ。だから私はa、b、cという3つのモデルを持っています。 a has_one c、b has_many cs、cはaとbの両方に属します。 bのメソッドで "cs"を参照すると、うまくいきます。しかし、私が "a"のメソッドで "c"を参照すると、参照を見つけることができません。 "c"は "未定義のローカル変数またはメソッド"です。私はを知っています。これらのオブジェクトはMySQLデータベースに表示され、bモデルから完全にアクセスできますが、モデルからアクセスできません。Ruby on Railsでこのクラスが見つからないのはなぜですか?
答えて
<のActiveRecord ::基本 has_oneのクラス:C:依存し=>:破壊
クラスB <のActiveRecord ::ベース にhas_many:クラスC <のActiveRecord ::ベースbelongs_toの
C: belongs_toの:B
はas_controller方法を作成します。
def create @a = a.new(params [:a]) params [:b] [:venue_id] = get_venue_id_for_b params [:venue] [:name] .blank? @ a.user = @user @ a.b = B.new(params [:b]) @b = @ a.b @ b.valid? @ a.valid?
respond_to do |format|
if @a.valid? and @b.valid?
if (@a.duplicate? or @a.save) and @b.save
flash[:notice] = 'a was successfully created.'
format.html { redirect_to a_url(@a) }
format.xml { head :created, :location => a_url(@a) }
else
format.html { render :action => "new" }
format.xml { render :xml => @a.errors.to_xml and @b.errors.to_xml }
end
else
format.html { render :action => "new" }
format.xml { render :xml => @a.errors.to_xml and @b.errors.to_xml }
end
end
端
モデルB内のこの方法は、動作:
はモデルA内でこの方法が機能しない
デフQ プット端 cs.class:DEF
q puts c.class end
何が起こっているのかまだ分かりません。私はあなたの外来キーが正しく指定されていると仮定しています。例えば。 Cテーブルには2つのキー "a_id"と "b_id"が必要です。つまり、あなたのCモデルでは、 "has_many:c"は意味をなさない。複数のフォーム "has_many:cs"を使用します。 –
あなたの問題は、あなたの関係の仕様から来ています。
あなたが正常にクエリを実行できるようにする必要があり、これらの線
class a < ActiveRecord::Base
has_one :c, :through=>:b
end
class b < ActiveRecord::Base
has_many :c
end
class a < ActiveRecord::Base
belongs_to :b
end
に沿って何かを探しているようです。お役に立てれば。
- 1. Ruby On Railsのバージョンが異なるのはなぜですか?
- 2. なぜphpspecでクラスが見つからないのですか?
- 3. Ruby on Rails 3のRuby on Rails Ajaxスキャフォールドジェネレータはなんですか?
- 4. Railsで私の資産が見つからないのはなぜですか?
- 5. 配備後に宝石が見つからない(Ruby、Ruby on Rails、Capistrano)
- 6. 入力(LoadError)でRubyスクリプトが見つからないのはなぜですか?
- 7. ここで例外が見つからないのはなぜですか?
- 8. Ruby on Rails:検索が機能しないのはなぜですか?
- 9. Ruby on Railsデータベースがロードされないのはなぜですか?
- 10. Ruby on Rails/Paperclipフォームが表示されないのはなぜですか?
- 11. なぜ私の変数がNilですか? - Ruby on Rails
- 12. エラークラスImagePixelが見つからないのはなぜですか?ここ
- 13. なぜfile.original_filenameはRuby on Railsで動作しないのですか?
- 14. IntelliJが私のクラスを見つけられないのはなぜですか?
- 15. Ruby RailsがHTTP GETリクエストで見つからない
- 16. Ruby on Railsコンソールの起動が遅いのはなぜですか?
- 17. このRuby on Railsページでブートストラップナビバーが表示されないのはなぜですか?
- 18. このGETリクエストでスクリプトが見つからないのはなぜですか?
- 19. このアクティビティでヘッダーが見つからないのはなぜですか?
- 20. なぜこのコメントはRuby on Railsでコンパイルエラーを生成しますか?
- 21. Ruby on Rails protect_from_forgery、なぜ舞台裏でデフォルトしないのですか?
- 22. Symfonyがこのルートを見つけられないのはなぜですか?
- 23. CUDAが見つからないのはなぜですか?
- 24. ViewModelが見つからないのはなぜですか?
- 25. アセットフォルダが見つからないのはなぜですか?
- 26. "-H"コマンドが見つからないのはなぜですか?
- 27. スタティックライブラリヘッダーが見つからないのはなぜですか?
- 28. 親キーが見つからないのはなぜですか?
- 29. ノードエクスプレスルートが見つからないのはなぜですか?
- 30. XCode - ファイルが見つからないのはなぜですか?
関連するすべての関連付けを含むコード。 –
コードが転記されました。 –
質問を編集して回答を投稿するのではなく、回答を削除してください。 –