Rails 简化了查询以获取用户配置文件first_name



我想检索申请人的应用程序。

配置文件,应用程序由外国密钥连接:用户_ID对用户可以建议吗?

这是我的关联:

user.rb

class User < ApplicationRecord
 has_many :applications
 has_one :profile, -> { where role: 'user' }, dependent: :destroy

profile.rb

class Profile < ApplicationRecord
    belongs_to :user, :class_name => 'User', :foreign_key => 'user_id'

job.rb

class Job < ApplicationRecord
    has_many :applications, :dependent => :destroy
    has_many :applicants, :through => :applications, :class_name => 'User'

application.rb

class Application < ApplicationRecord
  belongs_to :job
  belongs_to :applicant, :class_name => 'User', :foreign_key => 'user_id'     

这一行不正确...

 has_one :profile, -> { where role: 'user' }, class_name: 'User', dependent: :destroy

应该是...

 has_one :profile, -> { where role: 'user' }, dependent: :destroy

:profile的class_name是Profile,但您无需指定它,因为它可以由Rails从符号中衍生而来。

经过许多排列和组合(例如多态),select&amp;加入语句,甚至通过提供SQL查询,最终意识到它与我所知道的当前用户的User_id一样简单:

<% post.applications.each do |papplication| %>
  <%= Profile.find_by_user_id(papplication.user_id).first_name %> <% end %>

相关内容

  • 没有找到相关文章

最新更新