Ruby on rails RubyonRails,如何查询数据库中没有关联的对象?
这是我的第一个堆栈溢出问题,我很高兴来到这里!我今年才开始编写代码,所以我还是一名新手,需要您在rails方面的帮助 我正在创建一个模拟曲棍球选秀池的web应用程序。当用户创建联盟时,会自动创建并显示一组球员投影。然后,用户可以在联盟中创建团队,并为团队分配投影。我创建了一个名为player的模型,这是一种将投影与团队相关联的方法。当用户向团队添加投影时,他们实际上是在创建一个与两者关联的玩家实例。有了这个玩家模型,还有其他方法吗 我现在面临的一个问题是每次显示可用的投影时查询数据库需要多长时间。一旦投影有了子玩家,它就不应该再出现在投影列表中。下面的代码循环遍历所有投影,只显示没有子播放器的投影Ruby on rails RubyonRails,如何查询数据库中没有关联的对象?,ruby-on-rails,postgresql,rails-activerecord,Ruby On Rails,Postgresql,Rails Activerecord,这是我的第一个堆栈溢出问题,我很高兴来到这里!我今年才开始编写代码,所以我还是一名新手,需要您在rails方面的帮助 我正在创建一个模拟曲棍球选秀池的web应用程序。当用户创建联盟时,会自动创建并显示一组球员投影。然后,用户可以在联盟中创建团队,并为团队分配投影。我创建了一个名为player的模型,这是一种将投影与团队相关联的方法。当用户向团队添加投影时,他们实际上是在创建一个与两者关联的玩家实例。有了这个玩家模型,还有其他方法吗 我现在面临的一个问题是每次显示可用的投影时查询数据库需要多长时间
<h3>Projections</h3>
<ol>
<% @projections.each do |projection| %>
<% unless projection.player %>
<li><%= projection.player_name %><%= link_to "Assign to Team", new_player_path(leauge: @leauge, projection: projection.id) %></li>
<% end %>
<% end %>
</ol>
投影
由于有600个投影,因此每次加载页面时都需要10-30秒来查询数据库。有没有更有效的方法
以下是我的模型:
class Leauge < ApplicationRecord
require 'csv'
belongs_to :user
has_many :teams
has_many :projections
validates :name, uniqueness: true
validates :name, presence: true
def create_projections
CSV.foreach(Rails.root.join('lib/seeds/projections.csv'), headers: true, header_converters: :symbol, encoding: 'ISO-8859-1') do |row|
data = row.to_hash
Projection.create!(
player_name: data[:player],
player_team: data[:team],
goals: data[:goals],
assists: data[:assists],
points: data[:points],
pp_points: data[:pp_points],
hits: data[:hits],
blocks: data[:blk],
pim: data[:pim],
fow: data[:fow],
sog: data[:sog],
leauge: self
)
end
end
end
class Leauge
class Player
类投影:球员
结束
class团队:玩家
验证:名称,唯一性:true
验证:名称,状态:true
结束
谢谢使用includes'@projections=Projection.includes(:players)'这不起作用。它仍然显示每一个投影?另外:玩家需要:玩家不创建错误@投影=投影。其中(leauge:@leauge)。包括(:玩家)
class Player < ApplicationRecord
belongs_to :projection
belongs_to :team
end
class Projection < ApplicationRecord
belongs_to :leauge
has_one :player
has_one :team, :through => :player
end
class Team < ApplicationRecord
belongs_to :leauge
has_many :players
has_many :projections, :through => :players
validates :name, uniqueness: true
validates :name, presence: true
end