Ruby on rails 如何在RubyonRails中显示父表列名?
如何在RubyonRails中显示父表列名 我想显示company_name,它位于company_id,如1,post是子表名,其中是外键company_id,我想替换company_name,其中位于company_id 这是我的工作- 控制器:Ruby on rails 如何在RubyonRails中显示父表列名?,ruby-on-rails,ruby,ruby-on-rails-4,relationship,Ruby On Rails,Ruby,Ruby On Rails 4,Relationship,如何在RubyonRails中显示父表列名 我想显示company_name,它位于company_id,如1,post是子表名,其中是外键company_id,我想替换company_name,其中位于company_id 这是我的工作- 控制器: @post = Post.paginate(page: params[:page], :per_page => 10).order('job_view_count DESC') 视图: #我想在这里展示公司的名字 用户模型: clas
@post = Post.paginate(page: params[:page], :per_page => 10).order('job_view_count DESC')
视图:
#我想在这里展示公司的名字
用户模型:
class User< ActiveRecord::Base
has_many :posts, :foreign_key => :company_id
has_many :companies
end
class Post < ActiveRecord::Base
belongs_to :user
belongs_to :company
end
class用户:company\u id
有很多公司吗
终止
类Post
谢谢您只需执行
即可显示公司名称,而不必执行公司id
您只需执行
即可显示公司名称,而不必执行公司id
<% @post.each do |p| %>
<%= p.jpost_title %>
<%= p.company.company_name %>
<%= p.post_location %>
<% end %>
这将允许您使用:
<% @post.each do |p| %>
<%= p.jpost_title %>
<%= p.company_name %>
<%= p.post_location %>
<% end %>
使用delegate
将您的特定请求推送到company
对象,允许您直接调用@post
对象上定义的方法
这将允许您使用:
<% @post.each do |p| %>
<%= p.jpost_title %>
<%= p.company_name %>
<%= p.post_location %>
<% end %>
使用
delegate
将您的特定请求推送到company
对象,允许您直接调用@post
对象上定义的方法。在您的post
模型中,您拥有所属公司
,因此,您可以通过post.Company
访问公司
在Pavan的回答中,如果Post
没有公司,您将得到一个错误
我认为您应该在Post
模型中添加验证,如下所示:
validates :user_id, :company_id, presence: true
如果您假定帖子
不需要公司
,您可以将视图更改为:
<% @posts.each do |p| %>
<%= p.jpost_title %>
<%= p.company %>
<%= p.post_location %>
<% end %>
(我建议使用@posts
而不是@post
,因为对多个对象使用复数形式是一种惯例。)在您的post
模型中,您拥有所属的公司
,因此您可以通过post.company
访问公司
在Pavan的回答中,如果Post
没有公司,您将得到一个错误
我认为您应该在Post
模型中添加验证,如下所示:
validates :user_id, :company_id, presence: true
如果您假定帖子
不需要公司
,您可以将视图更改为:
<% @posts.each do |p| %>
<%= p.jpost_title %>
<%= p.company %>
<%= p.post_location %>
<% end %>
(我建议使用@posts
而不是@post
,因为对多个对象使用复数形式是一种惯例。)我将要写委托书(delegate
:)它是史诗般的,不是吗?节省了我们很多时间和精力!!希望你做得很好,伙计&祝你新年快乐。祝你还是同一个家伙:)我要写代表:)这是史诗般的,不是吗-节省了我们这么多时间和精力!!希望你过得很好,老兄&祝你新年快乐。祝你还是老朋友:)
# Returns name if present, otherwise id
def to_s
name || id
end