ruby-on-rails - 显示所有有工作的公司

标签 ruby-on-rails ruby ruby-on-rails-4 associations

我在公司 has_many: jobs 和工作 belongs_to: company 之间建立了工作和公司之间的关联。现在我试图访问一个只有公司有工作的页面,所以为此我在我的 Controller 中有这段代码

def recruiting
  @companies = Company.all
end

这是我的招聘页面

<% @companies.each do |company| %> 
  <% unless company.job.nil? %>
   <%= link_to company.name, company_path(company), title: "#{company.name}" %>
<% end %> 
<% end %>

这不起作用并给我一个错误 undefined method job'

最佳答案

如果您希望返回有职位的公司,而不必担心 View 中的 if/unless 逻辑,您可以:

def index 
  @companies = Company.joins(:jobs).uniq
end

但是,如果您想要返回有工作和没有工作的公司,您应该包括工作,这样您就不会在循环的每次迭代中进行 SQL 调用。

@companies = Company.includes(:jobs)

关于ruby-on-rails - 显示所有有工作的公司,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27990184/

相关文章:

ruby-on-rails - 为什么没有#is_a?使用 ActiveRecord::NamedScope::Scope 的实例

ruby-on-rails - Ruby 将字符串转换为下划线,避免在结果字符串中出现 "/"

mysql - 将 MySQL 切换到 Postgres : "column must appear in the GROUP BY clause or be used in an aggregate function"

ruby-on-rails-4 - 在 Rails 中将 session cookie 设置为安全

ruby-on-rails - Rails 关联访问

ruby-on-rails - 从 Controller 外部销毁资源

ruby-on-rails - 将调用记录解析为哈希数组 - Ruby

ruby-on-rails - RoR Passenger Web 服务器 gem 检查时出现 "Extra File"错误 --alien

html - 每个静态页面都需要静态页面 Controller 吗?

ruby-on-rails - Rails - 在 .create 上传递额外的变量