我剛開始使用Rails,並試圖構建一個銀行應用程序。我在設置帳戶之間的交易時遇到問題。在Rails中定義自定義方法
我目前腳手架的交易和帳戶。在我的交易頁面中,我可以創建交易清單,每個交易都包含有關來源賬戶,轉賬金額和目標賬戶的信息。但是,在頁面末尾,我想要一個鏈接或一個按鈕來處理頁面上的所有事務並清除頁面。因此,修改所有指定的賬戶餘額。
下面是我在做這件事的步驟。
1)在事務模型(transaction.rb模型)定義處理方法
class Transaction < ActiveRecord::Base
def proc (transaction)
# Code processes transactions
@account = Account.find(transaction.from_account)
@account.balance = @account.balance - transaction.amount
@account.update_attributes(params[:account]) #update the new balance
end
end
2)然後創建在交易控制器呼叫的方法執行
def execute
@transaction = Transaction.find(params[:id])
proc (@transaction)
@transaction.destroy
respond_to do |format|
format.html { redirect_to transactions_url }
format.json { head :no_content }
end
3)然後定義要在交易頁面上顯示的鏈接(如下所示):
<% @transactions.each do |transaction| %>
<tr>
<td><%= transaction.from_account %></td>
<td><%= transaction.amount %></td>
<td><%= transaction.to_account %></td>
<td><%= link_to 'Execute', transaction, confirm: 'Are you sure?', method: :execute %></td>
<td><%= link_to 'Show', transaction %></td>
<td><%= link_to 'Edit', edit_transaction_path(transaction) %></td>
<td><%= link_to 'Destroy', transaction, confirm: 'Are you sure?', method: :delete %></td>
<td><%= transaction.id%></td>
</tr>
<% end %>
4)但是,當我點擊鏈接執行我得到的路由錯誤: [POST] 「/交易/ 6」
目前我的路線(routes.rb中)的設置如下:
resources :transactions do
member do
post :execute
end
end
resources :accounts
如何設置路線,以便它可以處理我的方法? 在此先感謝
謝謝,有道理。 – Alex