每当我尝试访问“银行帐户”的索引时,我似乎在我的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>
答案 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交易 .... 端