Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在RubyonRails中显示父表列名?_Ruby On Rails_Ruby_Ruby On Rails 4_Relationship - Fatal编程技术网

Ruby on rails 如何在RubyonRails中显示父表列名?

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

如何在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')
视图:


#我想在这里展示公司的名字
用户模型:

 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