2011-06-21 10 views
0

:私のモデルではルーティング疑問構造 ".eachやる" - 私が持っている私のルートでのRails 3

resources :accounts do 
    resources :transfers 
     put '/transfers/:id(.:format)' => 'transfers#accept' 
    end 

を:私の見解では

class Transfer 
    include DataMapper::Resource 
    belongs_to :account 
    belongs_to :alias_from, "Alias" 
    belongs_to :alias_to, "Alias" 

class Account 
    include DataMapper::Resource 
    belongs_to :user 
    has n, :transfers 

<% @transfers_in.each do |income|%> 
    Amount: <%= income.amount%> <%= income.account.currency%> 
     <% form_for ([???, income]), :as => :transfer, :url => {:controller=>'transfers', :action => 'accept'} do |f|%> 
     Choose the account <%= f.collection_select :account, @accounts, :name, :name %> 
     <%= f.submit :value => "Accept" %> 
     <% end %> 
<% end %> 

ここで、@transfers_inが他の関連付けによって呼び出されている場合は、ここでアカウントを呼び出す必要がありますか?

@aliases = @owner.aliases.all() 
@transfers_in = @aliases.transfers_in.all() 

私は

<% @acc = Account.all()%> 
      <% @trs = @acc.transfers.get(:id => income.account)%> 
      <% form_for ([@trs, income]), .... 

のようなものを試してみたが、それは私の

を与えませルートが {一致しません: 、コントローラ=> "転送":アクション=> "受け入れます"}

レーキルートでは、このようなルートが存在します。

ご協力いただきありがとうございます。

答えて

0

あなたのルートでは、Railsがルーティングのために提供するマクロを使って、より良い結果を得られるはずです。代わりに、古いスタイルのルートマップを行うので、試してみてください。それはRESTfulなルートになると、ルータが本当にスマートです

resources :accounts do 
    resources :transfers do 
    put 'accept', :on => :member 
    end 
end 

をしていますが、手動で物事をマッピングを開始するとき、それは...混乱することができます場合は特に、あなたに」ネストされたRESTfulなルートの中で実行します。

関連する問題