Forum: Ruby on Rails joining 2 tables

Posted by Fabian Peter (fabborke)
on 2013-01-31 14:52
Hello,

I'm trying to join 2 tables with ruby on rails 3.2.

rails generate model product name:string
rails generate model price product_id:integer price:integer
date:datetime

product.rb:
class Product < ActiveRecord::Base
  has_many :prices
end

price.rb:
class Price < ActiveRecord::Base
  belongs_to :product
end

What is the most efficient way to get all products including the latest
price into the View.

Some tries didnt work for this:

@test = Product.includes(:prices).all
I didnt find anything about the prices in @test.

Thanks for help!

Fabian
Posted by Jim ruther Nill (jimboker)
on 2013-01-31 14:56
(Received via mailing list)
On Thu, Jan 31, 2013 at 9:52 PM, Fabian Peter <lists@ruby-forum.com> 
wrote:

>   has_many :prices
> Some tries didnt work for this:
>
> @test = Product.includes(:prices).all
> I didnt find anything about the prices in @test.
>

@test contains an array of products.  to get the prices, try

@test.each do |product|
  product.prices.each do |price|
    p price.price
  end
end


> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rubyonrails-talk+unsubscribe@googlegroups.com.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>


--
Posted by Colin Law (Guest)
on 2013-01-31 15:05
(Received via mailing list)
On 31 January 2013 13:55, Jim Ruther Nill <jvnill@gmail.com> wrote:
>> rails generate model price product_id:integer price:integer
>> end
> @test contains an array of products.  to get the prices, try
>
> @test.each do |product|
>   product.prices.each do |price|
>     p price.price
>   end
> end

But you don't need .includes,
@test = Product.all
will work fine (though I would prefer @products =Product.all since
that is what they are).

If you inspect @test you will not see the prices, but as soon as you
ask for the prices it will fetch them.  Such is the magic or Rails.

I am sure readers here are bored with me suggesting to beginners that
they work right through a good tutorial such as railstutorial.org,
which is free to use online, but it is definitely a good idea as it
would give you a good introduction to the basics of rails.  Also look
through the Rails Guides.

For some reason I am rarely thanked for offering this advice. :(

Colin
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.