Bhav
Bhav

Reputation: 2207

Using associations in Ruby on Rails

I'm learning RoR and I'm trying to understand associations. I've got two models - Company [name] and Note [company_id, notes]. As shown, the Note model has a company_id field to reference the primary key in the Company model.

Within a Notes view, I'm trying to display the Company name but I can't seem to get this to work.

I want to display

(SELECT name FROM Company WHERE Company.id=Note.company_id)

instead of note.company_id in the code below.

company.rb

class Company < ActiveRecord::Base
  has_many :notes
end

note.rb:

class Note < ActiveRecord::Base
  belongs_to :company
  default_scope -> { order(date: :desc) }
end

notes/index.html.erb

....
<% @notes.each do |note| %>
  <% if note.active %>
  <p>
    <%= note.date %>
    </br>
    <%= note.company_id %> - <%= note.contact %>
    </br>
    <%= note.notes %>
    <!-- <td><%= note.active %></td> -->
  </p>
  <% end %>
<% end %>
....

Upvotes: 0

Views: 30

Answers (1)

Brent Eicher
Brent Eicher

Reputation: 1050

To answer your specific question, try:

note.company.name

I would also recommend reading up on Rails partials, particularly how to render a collection: http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials

Upvotes: 1

Related Questions