【问题标题】:Showing join table field显示连接表字段
【发布时间】:2009-10-03 03:27:02
【问题描述】:

这里我想显示来自就业连接表的额外属性 CONFIRMED。我做错了什么?

class Job < ActiveRecord::Base    
has_many :employments, :dependent => :destroy
has_many :users, :through => :employments

class User < ActiveRecord::Base
has_many :employments 
has_many :jobs, :through => :employments


class Employment < ActiveRecord::Base
belongs_to :job
belongs_to :user  # Employment has an extra attribute of confirmed ( values are 1 or 0)

在我的工作视图中,我想显示每个工作的确认值。我似乎无法理解。 在我看来,我有:

<% @job.each do |job| %>
    <tr class="<%= cycle('oddrow', 'evenrow') %>">
      <td><%= link_to job.clientname, job_url(job.id) %></td>
      <td><%= job.eventtype.name %></td>
      <td><% unless job.starts_at.blank? %><%= job.starts_at.to_formatted_s(:full) %><% end %></td>
      <td>7 - 12 </td>

这里我想显示来自就业连接表的额外属性 CONFIRMED。我做错了什么?

     <td><%= job.employment.confirmed %></td> 
     </tr>
<% end %>

谢谢

【问题讨论】:

    标签: ruby-on-rails activerecord has-many-through


    【解决方案1】:

    看看你的工作模型。你已经宣布它有很多工作。调用关联的复数形式(employments)将为您提供该工作的工作列表。

    如果您只想要确认的工作,您可以向就业添加一个命名范围,如下所示:

    named_scope :confirmed, :conditions => ['confirmed = ?', true]
    

    然后打电话给job.employments.confirmed 只会给你确认的工作。

    【讨论】:

    • Jared,我知道我在这里遗漏了一些东西。我似乎无法绕过它。 我得到 #<0x23110e4>
    猜你喜欢
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    相关资源
    最近更新 更多