Bank_accounts #index中的ActionController :: RoutingError

时间:2012-03-14 23:18:21

标签: ruby-on-rails ruby

每当我尝试访问“银行帐户”的索引时,我似乎在我的Rails项目中遇到路由错误。我对Rails很新,所以这应该是一个简单的错误。如果我错过任何我道歉的话。

我得到的错误:

Bank_accounts #index中的ActionController :: RoutingError 显示app / views / bank_accounts / index.html.erb,其中第21行引发

这是Rails似乎不喜欢的代码行:

<td><%= link_to 'Transaction Details', bank_account_transaction_path(bank_account) %>  </td>

路线档案:

ActionController::Routing::Routes.draw do |map|
map.resources :bank_accounts, :has_many => [:transactions]

map.root :controller => "bank_accounts"

map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end

银行账户的索引视图

<% @bank_accounts.each do |bank_account| %>
<tr>
<td><%=h bank_account.account_number %></td>
<td><%=h bank_account.holders_name %></td>
<td><%=h bank_account.overdraft_limit %></td>
<td><%=h bank_account.current_balance %></td>
<td><%=h bank_account.active %></td>
<td><%= link_to 'Show', bank_account %></td>
<td><%= link_to 'Edit', edit_bank_account_path(bank_account) %></td>
<td><%= link_to 'Transaction Details', bank_account_transaction_path(bank_account) %>      </td>
<td><%= link_to 'Destroy', bank_account, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>

2 个答案:

答案 0 :(得分:1)

我对Rails命名约定的理解是,如果要链接到嵌套资源的索引,则需要使用复数:

bank_account_transactions_path(bank_account)

如果要链接到特定的嵌套资源,请使用单数形式并将嵌套资源ID作为第二个参数传递:

bank_account_transaction_path(bank_account, txnid)

this question有一个更清晰的语法示例 - 你可能会更喜欢它。

希望有所帮助!

答案 1 :(得分:0)

你应该 资源:bank_accounts 会员'交易',:method =&gt; :得到 端

在你的索引中 transaction_bank_account_path(帐户)

控制器 Def交易 .... 端