我正在尝试将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 :(得分:1)
你确定params [:amount]确实存在吗?检查create方法中params变量的内容,以查看传递给方法的数据。通常在params中,字段值如:您的案例中的金额由模型名称封装,您必须编写参考,例如params [:account] [:amount]才能访问它。
答案 1 :(得分:0)
@amount是控制器中的一个实例变量(以同一名称传递给视图)。
它与您的帐户实例中的金额方法不同(它返回您模型中的金额属性)