我的应用中有一个表单,提交时会创建order_params
,如下所示。
{"vendor_number"=>"200", "received_date"=>"2014-08-08", "po_number"=>"aaaa", "order_status"=>"-2", "shop_id"=>"2", "order_number"=>"12953", "shop_number"=>""}
在我的控制器内的我的创建功能中,我试图像这样编辑shop_number。
def create
p "------------------"
order_params[:shop_number] = 4
p order_params
p order_params[:shop_number]
p "------------------"
@order = Order.new(order_params)
respond_to do |format|
if @order.save
format.html { redirect_to '/purchase', notice: 'Order was successfully created.' }
else
format.html { render 'new' }
end
end
end
但是order_params [:shop_number]仍然没有得到更新..请帮助。这是正确的方法吗?
答案 0 :(得分:1)
有三种最简单的方法:
一个是:
您可以使用隐藏字段设置店铺编号。
f.hidden_field :shop_number, value: (shop_number_variable || 4) #what ever you want
第二是:
如nithin所述。
@order = Order.new(order_params)
@order.shop_number = (shop_number_variable || 4) #what ever you want
@order.save
第三是:
您可以使用before_filter。例如before_save
或before_create
等
答案 1 :(得分:0)
试试这个
@order = Order.new(order_params)
@order.shop_number = 4
if @order.save
......