indu
September 29, 2008, 8:02am
#1
Hello everyone
Just started to learn ROR.Does anyone have an idea on how to store
fields in two tables using a single form?
I wish to store the registration details in ‘users’ table and the
langauges selected by the user in another table user_language with each
row for one language selected(fields in the user_language table is
user_id and language_id where user_id is the id of the user trying to
register ie there may be more than one languages for a single user)
My view is like the following
<% form_for :user do |f| %>
Enter Name
:
<%= f.text_field :name %>
Enter Username
:
<%= f.text_field :username %>
Enter Password
:
<%= f.password_field :password %>
Address
:
<%= f.text_field :address %>
Select Gender
:
<%= radio_button("user", "gender", "1") %>Male
<%= radio_button("user", "gender", "2") %>Female
<%= radio_button("user", "gender", "3") %>Not Applicable
Select Languages Known
:
<% for language in @languages %>
<%= language.language %> <%=
check_box_tag(“user_language[language_id][]”,"#{language.id}") %>
<% end %>
</td>
</tr>
Select country
:
Select Country
<%= options_from_collection_for_select(
Country.find(:all), "id", "name") %>
Select State
:
<%= select("user", "state_id", State.find(:all).collect{ |c| [
c.state, c.id] }, {:prompt => 'Select
State'},{:onchange=>'display_msg();'}) %>
<%= observe_field("user[country_id]",
:frequency => 0.50,
:update => "user_state_id",
:url => {:action => :load_states},
:with => "'country_id='+value")
%>
</div>
</td>
</tr>
<%= f.submit "Register"
,{:onclick=>"display_msg(document.getElementById('user_name').value)"
}%>
<%= f.submit "List Users" %>
<% end %>
Controller contains
def create
@languages = Language.find(:all)
if request.post? and params[:commit] == “Register”
@user = User.new(params[:user])
@user.save
@user.user_language = User_Language.new(params[:user_language])
redirect_to :action => 'list_users'
end
when trying an error occurs . Pls help!
indu
September 29, 2008, 9:43am
#2
what error u r getting?
On Mon, Sep 29, 2008 at 11:32 AM, Indu Rs
indu
September 29, 2008, 3:11pm
#3
use build method… google it you will get good answer.
indu
October 1, 2008, 2:03pm
#4
Rails T. wrote:
Start learn from here :
http://railscasts.com/episodes/73-complex-forms-part-1
and then follow up to episode 3.
Y Reinhart AP
Thank you and solved my issue
indu
September 29, 2008, 5:32pm
#5
Start learn from here :
http://railscasts.com/episodes/73-complex-forms-part-1
and then follow up to episode 3.
Y Reinhart AP