HI! In my form rendered partially, for 3 models: User, Address, Phone.
The are if conditions in the form for handling user registration and updating user. When i do the registration part the submit button works but on the edit it wont !!??
Heres the complete form: manage.html.erb:
<%= error_messages_for 'user' %> <% if params[:id].blank? -%> <%form_for :user, :url=>{:action=>:register} do |form| %> <%= render :partial=>'form', :locals => { :form => form }%> <fieldset class="alt" id="submit"> <%= submit_tag "rejestruj"%> </fieldset> <%end%> <%else -%> <%form_for :user,@user, :url=>{ :action=>:update,:id=>@user.id} do | form> %> <%= render :partial=>'form', :locals => { :form => form }%> <% end %> <fieldset class="alt" id="submit"> <%= submit_tag "zmień" %> </fieldset> <%end%>
_form.html.erb
<fieldset>
<legend>
<span>Dane systemowe:</span>
</legend>
<label for="login">
<span>Login:</span>
<%=form.text_field :login,:size=>25 %><em>*</em>
</label>
<label for="user_password">
<span>Hasło:</span>
<%=form.password_field :password, :size=>30 %><em>*</em>
</label>
<label for="user_password_confirmation">
<span>Powtórz hasło:</span>
<%=form.password_field :password_confirmation, :size=>30
%><em>*</em>
</label>
<label for="type">
<span>typ konta:</span>
</label>
<fieldset>
<%if session[:user_level].to_i == 3 %>
<label>
<span>administrator:</span>
<%=form.radio_button :account_type, '3' %>
</label>
<%end %>
<label for="user_acount_type">
<span>nauczyciel: </span>
<%=form.radio_button :account_type, '2' %>
</label>
<label>
<span>uczeń:</span>
<%=form.radio_button :account_type, '1' %>
</label>
</fieldset>
</fieldset>
<fieldset class="alt">
<legend>
<span>Dane osobowe:</span>
</legend>
<label for="user_name">
<span>Imie:</span>
<%=form.text_field :name, :size=>15 %><em>*</em>
</label>
<label for="user_surname">
<span>Nazwisko:</span>
<%=form.text_field :surname, :size=>20 %><em>*</em>
</label>
</fieldset>
<fieldset>
<legend>
<span>Dane adresowe:</span>
</legend>
<%if @user %>
<%fields_for :address, @user.address do |a| %>
<%=render :partial=>'address',:locals=>{:a => a} %>
<%end %>
<%else %>
<%fields_for :address do |a| %>
<%=render :partial=>'address',:locals=>{:a => a} %>
<%end %>
<%end %>
<%if @user %>
<%fields_for :phones, @user.phones[0] do |p| %>
<%=render :partial=>'phones',:locals=>{
=> p} %>
<%end %>
<%else %>
<%fields_for :phones do |p| %>
<%=render :partial=>'phones',:locals=>{
=> p} %>
<%end %>
<%end %>
<label for="user_email">
<span>Email:</span>
<%=form.text_field :email, :size=>55 %><em>*</em>
</label>
<label for="user_home_page">
<span>prywatna strona www:</span>
<%=form.text_field :home_page, :size=>75 %>
</label>
</fieldset>
address.html.erb <label for="street"><span>Ulica:</span> <%= a.text_field :street, :size=>25%> </label> <label for="number"><span>Numer:</span> <%= a.text_field :number, :size=>8%> </label>
<label for="street"><span>Miasto:</span> <%= a.text_field :city, :size=>30 %> </label> <label for="post_code"><span>Kod pocztowy:</span> <%= a.text_field :post_code, :size=>17%> </label>
<label for="state"><span>Województwo:</span> <%= a.text_field :state, :size=>18 %> </label>
<label for="user_address_country"><span>Kraj:</span> <%= a.text_field :country, :size=>25 %> </label>
_phones.html.erb <label for="phone_type"><span>Telefon:</span> <%= p.select :phone_type,['domowy','komórkowy','biurowy']%> </label> <label for="home_phone"><span>numer:</span> <%= p.text_field :number, :size=>19%> </label>
And the action in the controller def register @user = User.new(params[:user]) @address = Address.new(params[:address]) @user.address = Address.new(params[:address]) #@address @phone = Phone.new(params[:phones]) @user.phones << @phone if request.post? and @user.save flash[:notice] = "Zostałeś zarejestrowany " + @user.login redirect_to(:controller=>:main, :action =>:index) else render :action=>:manage end end
Other thing is that adding the addres to juser stoped working, after
adding another field ![]()