[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Rails - relations

Israel Guerra

6/11/2008 12:03:00 AM

[Note: parts of this message were removed to make it a legal post.]

Hi ppl.

I am noob in rails and started an app to learn. I have the following
scenario:

table client with fileds: name, second_name
table phone with fields: number, client_id
table address with fields: street, number, client_id

The migrations worked ok and the fields are created.

Now i defined in the model that

for client:
has_many :phones
has_many :adresses

for phones and adresses:
belongs_to :client

I made a form to get some of these fields and add to the database:

<% form_for(:clients) do |f| %>
<p>
<b>Name</b>
<%= f.text_field :name %>
</p>
<p>
<b>Second Name</b>
<%= f.text_field :second_name%>
</p>

<p>
<b>Number</b>
<%= f.text_field :number%>
</p>

<p>
<%= f.submit "Add" %>
</p>
<% end %>

And in the controller i try to save it to the DB:

@clients = Clients.new(params[:clients])
@clients.save

When i submit i get an error saying that number is not a method, it means it
didnt associate number with a cliente. It's not "joining" the tables.

Where did i made a mistake here?

Thanks guys.


--
Guerra

2 Answers

Damjan Rems

6/11/2008 6:47:00 AM

0

Israel Guerra wrote:
> Hi ppl.
>
> I am noob in rails and started an app to learn. I have the following
> scenario:
>
> table client with fileds: name, second_name
> table phone with fields: number, client_id
> table address with fields: street, number, client_id
>
> The migrations worked ok and the fields are created.
>
> Now i defined in the model that
>
> for client:
> has_many :phones
> has_many :adresses
>
> for phones and adresses:
> belongs_to :client
>
> I made a form to get some of these fields and add to the database:
>
> <% form_for(:clients) do |f| %>
> <p>
> <b>Name</b>
> <%= f.text_field :name %>
> </p>
> <p>
> <b>Second Name</b>
> <%= f.text_field :second_name%>
> </p>
>
> <p>
> <b>Number</b>
> <%= f.text_field :number%>
> </p>
>
> <p>
> <%= f.submit "Add" %>
> </p>
> <% end %>
>
> And in the controller i try to save it to the DB:
>
> @clients = Clients.new(params[:clients])
> @clients.save
>
> When i submit i get an error saying that number is not a method, it
> means it
> didnt associate number with a cliente. It's not "joining" the tables.
>
> Where did i made a mistake here?
>
> Thanks guys.


1. Try asking this questions in rail snewsgroup
2. You are trying to access field from other table. The right way to
access the filed would be:
client.phones[n].number

and I don't know if this can be done with simple form.


by
TheR

--
Posted via http://www.ruby-....

Israel Guerra

6/11/2008 11:17:00 AM

0

[Note: parts of this message were removed to make it a legal post.]

Oh, it's true, i always end up mixing up rails list with ruby list!

Thanks for the tips though :)

On Wed, Jun 11, 2008 at 3:46 AM, Damjan Rems <d_rems@yahoo.com> wrote:

> Israel Guerra wrote:
> > Hi ppl.
> >
> > I am noob in rails and started an app to learn. I have the following
> > scenario:
> >
> > table client with fileds: name, second_name
> > table phone with fields: number, client_id
> > table address with fields: street, number, client_id
> >
> > The migrations worked ok and the fields are created.
> >
> > Now i defined in the model that
> >
> > for client:
> > has_many :phones
> > has_many :adresses
> >
> > for phones and adresses:
> > belongs_to :client
> >
> > I made a form to get some of these fields and add to the database:
> >
> > <% form_for(:clients) do |f| %>
> > <p>
> > <b>Name</b>
> > <%= f.text_field :name %>
> > </p>
> > <p>
> > <b>Second Name</b>
> > <%= f.text_field :second_name%>
> > </p>
> >
> > <p>
> > <b>Number</b>
> > <%= f.text_field :number%>
> > </p>
> >
> > <p>
> > <%= f.submit "Add" %>
> > </p>
> > <% end %>
> >
> > And in the controller i try to save it to the DB:
> >
> > @clients = Clients.new(params[:clients])
> > @clients.save
> >
> > When i submit i get an error saying that number is not a method, it
> > means it
> > didnt associate number with a cliente. It's not "joining" the tables.
> >
> > Where did i made a mistake here?
> >
> > Thanks guys.
>
>
> 1. Try asking this questions in rail snewsgroup
> 2. You are trying to access field from other table. The right way to
> access the filed would be:
> client.phones[n].number
>
> and I don't know if this can be done with simple form.
>
>
> by
> TheR
>
> --
> Posted via http://www.ruby-....
>
>


--
Guerra