2015-12-14 172 views
0

我想分配一個params到我的控制器中的變量爲變量,嵌套資源。嵌套資源的參數

Controller for Transactions: 
def create 
    @amount = params[:amount] 
    [...] 
end 


Routes: 
resources :accounts do 
    resources :transactions 
end 

View for New Transaction: 
<%= form_for([@account, @account.transactions.build]) do |f| %> 
    [...] 
    <%= f.label :amount %> 
    <%= f.text_field :amount %> 
    [...] 
    <%= f.submit %> 
<% end %> 

由於某種原因返回nil。行@amount = params[:amount]僅適用於沒有嵌套的資源嗎?還是我錯過了別的?

+0

這是沒有什麼不同,請出示您的看法 – Vasfed

回答

1

你確定比params [:amount]實際存在嗎?在create方法中檢查params變量的內容,以查看傳遞給方法的數據。通常在params中,字段值如:您的案例中的數量被模型名稱封裝,您必須編寫一個引用,例如params [:account] [:amount]才能訪問它。

+0

'PARAMS [:交易] [:數量] ' – 0r4cl3

0

@amount是控制器中的一個實例變量(它通過相同的名稱傳遞給視圖)。

這是不一樣在你的帳戶實例的數量方法(返回量的屬性在你的模型)