Работа после создания пользователя - PullRequest
0 голосов
/ 05 января 2011

Я создаю нового пользователя с основными полями, такими как имя пользователя и пароль.Затем я перенаправляю на другую страницу, где пользователю разрешено заполнить свой профиль.Страница выглядит следующим образом.

Хорошо, сначала я создал пользователя.Затем я перенаправил пользователя, чтобы заполнить его профиль.Страница профиля выглядит следующим образом

<h1>User successfully created</h1>
<h3>Would you like to complete your profile now?</h3>
<%= render @profile %>
<%= render @address %>

<%= button_to 'Save',{
            :controller => "users",
                            :action => "update", 
            :id => @user.id,
                            :profile => @profile,               
                            :address => @address                    
                         }, :method => :put %>

Приведенный выше код выполняет действие обновления в контроллере.Тем не менее, я получаю ноль для @profile и @address объектов.Я полагаю, что button_to не влияет на профиль и частичные адреса.

Частичный адрес выглядит следующим образом

<%= form_for(@address) do |f| %>
  <% if @address.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@address.errors.count, "error") %> prohibited this address from being saved:</h2>

      <ul>
      <% @address.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

    <fieldset>

        <legend>Addresss</legend>

      <div class="field">
        <%= f.label :street_address %>
        <%= f.text_field :street_address, :size => 40 %>
      </div>
      <div class="field">
        <%= f.label :street_address_2 %>
        <%= f.text_field :street_address_2, :size => 40 %>
      </div>
      <div class="field">
        <%= f.label :city %>
        <%= f.text_field :city, :size => 40 %>
      </div>
      <div class="field">
        <%= f.label :state %>
        <%= f.text_field :state, :size => 40 %>
      </div>
      <div class="field">
        <%= f.label :zip_code %>
        <%= f.text_field :zip_code, :size => 40 %>
      </div>

<% end %>

Буду признателен, если кто-нибудь сможет мне помочь в этом.

1 Ответ

2 голосов
/ 05 января 2011

Метод button_to создает только кнопку, которую можно использовать для вызова контроллера или перехода на другую страницу.

Если вы хотите разрешить пользователю изменять поля, вам нужно использовать форму. Пожалуйста, прочитайте это руководство по формам для получения дополнительной информации, особенно часть 2 , представляющая интерес для вашей ситуации.

Редактировать : для отправки вам нужна кнопка отправки в форме, а не button_to вне формы. Если вы хотите, чтобы обе части были представлены одновременно, вам нужна 1 большая форма и контроллер, который может обрабатывать данные обеих моделей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...