RailsのNテーブルの関係

エベレットカーニー

Railsの自動魔法に頭を包むのに問題があります。現在、何らかの形で相互に関連している4つの異なるテーブルがありますが、アプリケーションでそれを表すのに苦労しています。PHP / MySQLでこれを問題なく行うことができましたが、新しいフレームワークへの変換は思ったほど簡単ではありませんでした。

現在、4つのテーブルがありますが、これと同じ構造を模倣するテーブルがさらに多くなります。現在の4つのテーブルは(railsクラス表現)です。

  • ユーザー
  • InterestPage
  • InterestPageCategory
  • InterestPageMap

各ユーザーは、InterestPageMapを介してhas_many InterestPage(s)を持っています

各InterestPageはInterestPageCategoryに属し、InterestPageCategoryには多くのInterestPageがあります。

特定のユーザーに新しいInterestPageを追加するときは、最初に、InterestPageCategoryが存在し、InterestPageが正しいカテゴリにリンクされていることを確認する必要があります。この種の関係について行くための最良の方法は何ですか?

私が今使用している方法は私にこのエラーを与えています:

uninitialized constant User::InterestPageCategory

ですから、私がやろうとしていることからはかなりかけ離れていると思います。私のユーザークラスコードは次のようになります。

has_many :interest_page_maps, foreign_key: "fb_id", dependent: :destroy
...
category = InterestPageCategory.where(category: resp["category"]).first_or_create
# Then I try to add the page with the correct category
page = InterestPage.where(resp[0]).first_or_create do |interestpage|
    # Should I be adding the page through the category in this block?
    interestpage.name = resp["name"]
    interestpage.id = resp["id"]
end

ヒントや提案をいただければ幸いです。ありがとう!

エベレットカーニー

これは私の側のタイプミスであることが判明しました。Railsは、関係を生成するときにクラス名ではなくファイル名を参照します

InterestPageCategoryクラスを含むファイルの名前はinterest_page_categories.rbでした。これは正しくありませんでした。Railsが参照しようとしたクラスを「見る」には、ファイルの名前がinterest_page_category.rb(単数形と複数形)である必要がありました。

これが他の誰かに役立つことを願っています、あなたのネーミングの人々をチェックすることを忘れないでください!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    どのように関係なく、それがどのように「悪い」、すべてのSSL証明書でのHttpClientを使用しないように

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    Modbus Python Schneider PM5300

  4. 4

    System.Data.OracleClient.OracleException:ORA-06550:行1、列7:

  5. 5

    scala.xmlノードを正しく比較する方法は?

  6. 6

    インデックス作成時のドキュメントの順序は、Elasticsearchの検索パフォーマンスを向上させますか?

  7. 7

    Elasticsearch - あいまい検索は、提案を与えていません

  8. 8

    グラフ(.PNG)ファイルをエクスポートするZabbix

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    変数値を含むElasticSearch検索結果

  11. 11

    Elasticsearchでサーバー操作を最適化:低いディスク透かしに対処する

  12. 12

    Python / SciPyのピーク検出アルゴリズム

  13. 13

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  14. 14

    テキストフィールドの値に基づいて UIslider を移動します

  15. 15

    Chromeウェブアプリのウェブビューの高さの問題

  16. 16

    NGX-ブートストラップ:ドロップダウンに選択したアイテムが表示されない

  17. 17

    Reactでclsxを使用する方法

  18. 18

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  19. 19

    Pushwooshで削除されたアプリデバイストークンを処理する方法は?

  20. 20

    ラベルとエントリがpythontkinterに表示されないのはなぜですか?

  21. 21

    Elasticsearchの場合、間隔を空けた単語を使用したワイルドカード検索

ホットタグ

アーカイブ