用户创建后工作

时间:2011-01-05 15:28:04

标签: ruby-on-rails

我创建了一个新用户,其基本字段为用户名和密码。然后我重定向到另一个页面,允许用户完成他的个人资料。该页面看起来像这样。

好的,我先创建了用户。然后我重定向用户以完成他的个人资料。个人资料页面如下所示

<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 个答案:

答案 0 :(得分:2)

button_to方法只创建一个按钮,用于调用控制器/转到另一个页面。

如果要允许用户修改字段,则需要使用表单。请阅读此guide on forms以获取更多信息,尤其是part 2对我的情况感兴趣。

修改:您需要在表单中提交一个提交按钮,而不是表单外的button_to。如果你想同时提交两个部分,你需要一个大的表格和一个能够处理两个模型的数据的控制器。