Show info from table wich is joined

R

Remco Swoany

Hi,

<% @user.email %>
...is working

<% @user.educations do |education| %>
<li><%= education.name%></li>
...is NOT working.

This is because there is a join-table involved..below the mirgation

class AddTableEducationsUsers < ActiveRecord::Migration
def self.up
create_table :educations_users do |t|
t.column :education_id, :integer
t.column :user_id, :integer

end
add_index "educations_users", "education_id"
add_index "educations_users", "user_id"

end
def self.down
drop_table :educations_users
end
end

I want on the user-page the occupations of the user...any suggestions??

remco
 
J

Jacob Basham

Did you setup the AR models?

User
has_many :education

Education
belongs_to :user
 
R

Remco Swoany

Jacob said:
Did you setup the AR models?

User
has_many :education

Education
belongs_to :user

Hi Jacob,

My models are..

User
has_and_belongs_to_many :educations

Education
has_and_belongs_to_many :users


Because a user can have many educations and eductions can have many
users.

remco
 
T

Todd Benson

Hi Jacob,

My models are..

User
has_and_belongs_to_many :educations

Education
has_and_belongs_to_many :users


Because a user can have many educations and eductions can have many
users.

Are you trying to move away from the DB relational model (i.e. you
plan to alter the DB), or just trying to get Ruby to work with it?

By the sound of it, you have something in the DB that looks like
(forgive the crude notation)...

Users <-- Expertise --> Educations

3 tables?

Todd
 
R

Remco Swoany

Todd said:
Are you trying to move away from the DB relational model (i.e. you
plan to alter the DB), or just trying to get Ruby to work with it?

By the sound of it, you have something in the DB that looks like
(forgive the crude notation)...

Users <-- Expertise --> Educations

3 tables?

Todd

I have 3 tables

users
educations
educactions_users

The educactions_users is my join table, with the columns users_id and
educations_id.

A part of the user-edit-view looks like this, where the user can
specified there educations. This works..after getting grey hair!!

<h4>educations</h4>
<% for education in Education.find:)all) %>
<div>
<%= check_box_tag "user[education_ids][]", education.id,
@user.educations.include?(education) %>
<%= education.name%>
</div>
<% end %>

But.....

In the show-view i want a list of educations wich the user has selected.
I thought this.

<h4>Educations</h4>
<ul>
<% @user.educations do |education| %>
<li><%= education.name%></li>
<% end %>
</ul>

This get empty value..

This is my problem..

Grtz..remco
 
T

Todd Benson

Todd said:
Are you trying to move away from the DB relational model (i.e. you
plan to alter the DB), or just trying to get Ruby to work with it?

By the sound of it, you have something in the DB that looks like
(forgive the crude notation)...

Users <-- Expertise --> Educations

3 tables?

Todd

I have 3 tables

users
educations
educactions_users

The educactions_users is my join table, with the columns users_id and
educations_id.

A part of the user-edit-view looks like this, where the user can
specified there educations. This works..after getting grey hair!!

<h4>educations</h4>
<% for education in Education.find:)all) %>
<div>
<%= check_box_tag "user[education_ids][]", education.id,
@user.educations.include?(education) %>
<%= education.name%>
</div>
<% end %>

But.....

In the show-view i want a list of educations wich the user has selected.
I thought this.

<h4>Educations</h4>
<ul>
<% @user.educations do |education| %>
<li><%= education.name%></li>
<% end %>
</ul>

This get empty value..

This is my problem..

Grtz..remco

Have you tried specifying the word "through" in your rails models.
This works for me, for example...

class User < ActiveRecord::Base
has_many :memberships
has_many :groups, :through => :memberships
end

class Group < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :memberships
end

class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end

hth a little,
Todd
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,153
Members
46,699
Latest member
AnneRosen

Latest Threads

Top