使用User ActiveRecord关联提交命名空间帐户时出现问题

时间:2011-03-18 13:09:55

标签: ruby-on-rails ruby ruby-on-rails-3 forms activerecord

我正在使用Ruby on Rails 3,我正在尝试使用ActiveRecord关联提交命名空间帐户。

路由器中我有

resources :users

namespace "users" do
  resources :accounts
end

用户模型中我有:

class User < ActiveRecord::Base
  has_one :account,
    :class_name  => "Users::Account"
end

用户控制器中我有

class UsersController < ApplicationController
  def new
    @user = User.new
    ...
  end
end

要提交用户帐户,请在表单视图中尝试执行以下操作:

<%= form_for([:users, @user.account]}) do |f| %>
  ...
<% end %>

但这不起作用。那么我必须做些什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

有些事情看起来很混乱。你有用户的视图,但你在那里创建User :: Account?!在控制器中,您没有创建该帐户。也许:

@user = User.new :account => Users::Account.new

但请注意,您需要在Users :: AccountController中移动逻辑,或者如果您想在同一视图中同时创建用户及其帐户,而不是将nested_forms用于帐户,而应将表单发布到@用户模型也可以在帐户中使用accepting_nesting_attributes。