1

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を使用しており、フォームなどとの関係はそこでうまく機能します。

どんな助けでも大歓迎です!

4

2 に答える 2

1

bank は user の下にネストされているため、ユーザーにフォームを渡す必要があります。

<%= simple_form_for([@user, @bank]) do |f| %>

さらに、ルートファイルは

resources :users do
  resource :bank

これにより、ユーザーの user_bank_path が得られます

于 2012-11-11T20:04:48.840 に答える
0

関連タイプに関係なく、リソースを複数形で宣言する必要があります。

したがって、リソース宣言

resources :users do
  resource :banks
end
于 2012-11-14T14:20:32.143 に答える