我正在使用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 %>
但这不起作用。那么我必须做些什么才能让它发挥作用?
答案 0 :(得分:1)
有些事情看起来很混乱。你有用户的视图,但你在那里创建User :: Account?!在控制器中,您没有创建该帐户。也许:
@user = User.new :account => Users::Account.new
但请注意,您需要在Users :: AccountController中移动逻辑,或者如果您想在同一视图中同时创建用户及其帐户,而不是将nested_forms用于帐户,而应将表单发布到@用户模型也可以在帐户中使用accepting_nesting_attributes。