我正在尝试在Rails 3中实现简单的1对1关系,用户可以在其中连接银行帐户。
class User < ActiveRecord::Base
has_one :bank
accepts_nested_attributes_for :bank
attr_accessible :bank_attributes
end
class Bank < ActiveRecord::Base
belongs_to :user
end
路线
resources :users do
resources :bank
现在,当我为users / 1 / bank / new中的用户构建一个新的银行对象时,这样:
def new
@user = User.find(current_user.id)
@bank = @user.build_bank
end
我的错误就是这样:
<%= simple_form_for(@bank) do |f| %>
错误是:
undefined method `banks_path' for #<#<Class:0x007fa7bd090f08>:0x007fa7c0545b40>
我的目标是为用户添加单独的表单以添加银行帐户信息。希望有人可以帮助我朝着正确的方向去做这件事。我也使用ActiveAdmin,与表单等的关系在那里工作正常。
感谢任何帮助!
答案 0 :(得分:1)
由于银行嵌套在用户之下,您需要向用户提供表单:
<%= simple_form_for([@user, @bank]) do |f| %>
此外,您的路线文件应为
resources :users do
resource :bank
这将为您提供用户的user_bank_path
答案 1 :(得分:0)
无论关联类型如何,您都需要以复数形式声明资源。
那么,您的资源声明
resources :users do
resource :banks
end