私のユーザーモデルでは、次のことができます。
has_many :tasks
私のタスクモデルでは:
belongs_to :user
次に、外部キー「user_id」がtasksテーブルに保存されていると仮定すると、次を使用できます。
@user.tasks
私の質問は、ユーザーのタスクを次のように参照できるように、has_many関係をどのように宣言するかです。
@user.jobs
... または ...
@user.foobars
ヒープに感謝します。
これを試してください:
has_many :jobs, foreign_key: "user_id", class_name: "Task"
:as
は、 多態的な関連付け に使用されることに注意してください。
タスクとしても参照できるようにする場合は、alias_attribute
を使用することもできます。
class User < ActiveRecord::Base
alias_attribute :jobs, :tasks
has_many :tasks
end
@SamSaffronの回答を完了するには:
class_name
またはforeign_key
のいずれかでinverse_of
を使用できます。私は個人的にもっと抽象的な宣言を好みますが、それは本当に好みの問題です:
class BlogPost
has_many :images, class_name: "BlogPostImage", inverse_of: :blog_post
end
また、子モデルにbelongs_to
属性があることを確認する必要があります。
class BlogPostImage
belongs_to :blog_post
end