はのは、次の関係(3モデル)を考えてみましょう:will_many:RoRに大きなパフォーマンス上の影響を与えますか?
class Author < ActiveRecord::Base
has_many :authorships
has_many :papers, :through => :authorships
end
class Paper < ActiveRecord::Base
has_many :authorships, inverse_of: :paper, :dependent => :destroy
has_many :authors, :through => :authorships
accepts_nested_attributes_for :authorships, :allow_destroy => true
end
class Authorship < ActiveRecord::Base
belongs_to :paper
belongs_to :author
validate: rank, presence: true # position of the author
end
あなたが見ることができるように、私はたくさんhas_many
を使用しても:through
。基本的にすべての論文とそれに対応する著者を表示するpaper.html.erb
ページを閲覧すると、システムが大きく遅くなる。今私は約400の論文と2000人の著者を持っており、ページをロードするのに3秒かかります。さらに、RoRがたくさんのSQLクエリを作ったのを見たログから、クエリの大部分が著者を検索しています。私はこれがRoRの典型的なものであると思っていました。ご協力いただきありがとうございます。
コントローラとビューコードも投稿できますか? –