Inserting into database problem


#1

Hi,

I have this problem I have been working on ours and can’t find the
proper solution

i have two tables
User_Info : columns {:id, :name, :address}

Access_Info : columsn {:id, :username, :password, :user_info_fkey,

:access_type}

In my model
User_Info
when I had I do something like this

@user= User_Info.new(params[:user])
@access = Access_Info.new(params[:access])

then i do a transaction to see if one save fails delete everything that
was created.

my problem is with Access_Info.new I want to add manually more
parameters values. first I need to get the id from @user and give it to
access_info and I also want to manually set the value of :access_type

i did something like this

@user= User_Info.new(param[:user])
params[:access].merge= ( {:user_info_fkey => params[:user][:id] } )
@access = Access_Info.new(param[:access])

but it does not seem to work… which is annoying…

also just another quick questions
when using save is there a way to say to insert on columns x,y,z ??
because I have a column that uses NOW()+0 and I don’t want ruby to write
null or something else

thank you


#2

2009/5/15 Anthony W. removed_email_address@domain.invalid

:access_type}

my problem is with Access_Info.new I want to add manually more
parameters values. first I need to get the id from @user and give it to
access_info and I also want to manually set the value of :access_type

I know it is not answering the question, but if you are trying to get
the
user id into the access record then do it by using an association.
UserInfo has_one :access_info
AccessInfo belongs_to :user_info

Let Rails do the hard work for you. Also I would advise sticking to the
Rails conventions if you can, don’t have underscores in the model names,
they will just cause confusion. In fact I would suggest the models could
be
User and Access.

To set the value of access_type just do @access.access_type = whatever
(Again should it just be @access.type ?)

Colin

also just another quick questions
when using save is there a way to say to insert on columns x,y,z ??
because I have a column that uses NOW()+0 and I don’t want ruby to write
null or something else

Don’t understand this question.


#3

Hi,

I tried to set to the convention but I caused loads of problems…
anyaways
I have set up
UsersInfo has_one :access_info
AccessInfo belongs_to :user_info

but it won’t do any work, how would ruby knows that my column
“access” refers to refers to UserInfo.

should i do
UserInfo has_one :access_info, :foreign_key => ‘access_type’

then would ruby put
in access_type userinfo.id automatically?

Colin L. wrote:

2009/5/15 Anthony W. removed_email_address@domain.invalid

:access_type}

my problem is with Access_Info.new I want to add manually more
parameters values. first I need to get the id from @user and give it to
access_info and I also want to manually set the value of :access_type

I know it is not answering the question, but if you are trying to get
the
user id into the access record then do it by using an association.
UserInfo has_one :access_info
AccessInfo belongs_to :user_info

Let Rails do the hard work for you. Also I would advise sticking to the
Rails conventions if you can, don’t have underscores in the model names,
they will just cause confusion. In fact I would suggest the models could
be
User and Access.

To set the value of access_type just do @access.access_type = whatever
(Again should it just be @access.type ?)

Colin

also just another quick questions
when using save is there a way to say to insert on columns x,y,z ??
because I have a column that uses NOW()+0 and I don’t want ruby to write
null or something else

Don’t understand this question.


#4

Can I suggest you do some reading up on the basics of Rails to get you
going? The rails guides are very good (http://guides.rubyonrails.org/)
as
are the railscasts (http://railscasts.com/), though I would suggest
starting
with the guides. There are also a number of books, I found Agile Web
Development With Rails 3rd edition (earlier editions will not be correct
for
latest Rails) very good.

In addition stick around here and for any posts that you understand the
question, follow the replies and try to understand them. You will learn
a
tremendous amount over a period. In particular you will keep find
yourself
saying “Wow I didn’t know you could do that”.

2009/5/15 Anthony W. removed_email_address@domain.invalid