を返すために、私は2つのテーブルと1 tomany関係を持っている:Railsの3ワンtomany関係の問題 - 次のようにどのように列名値
モデル:
class MediaType < ActiveRecord::Base
belongs_to :media
end
class Media < ActiveRecord::Base
has_many :media_types
end
SQLを単純化するためにあります:私はmedia_type_idに関連するメディアレコードを挿入すると
create_table :media do |t|
t.string "name", :limit => 255
t.integer "media_type_id"
end
create_table :media_types do |t|
t.string "name", :limit => 255
end
、どのように私はメディアレコードに関連media_type.name値を引き戻すのですか?
私は盲目的に試してみました:
media = Media.find(1)
media.media_type_id.name
をしかし、それは、もちろん動作しませんでした。私のSQL Railsの標準はおそらく可能ですか?
ありがとうございました。
に名前を与えますご協力いただきありがとうございます!私はまだRaailsに新しいです:) MediaTypeは "has_many:medias"になる必要がありますか?私も "has_many:media"を "s"と試してみましたが、それはうまくいくようです。違いは何ですか? – Slowfib
これは契約書であり、Railsの多くのうちの1つです。 「has_many」や「has_and_belongs_to_many」の場合は、複数の単語が共通している必要があります(ほとんどの場合、単語の最後に 's'が追加されますが、たとえば 'media'がうまく見えません)。 'has_many:subscribers has_many:users has_many:films' しかしhas_many:media Railsコンソールで 'media'.pluralizeと' user'.pluralizeを試してみてください.Railsが単語を複数形にする方法 – warpc