在Rails中的表单提交上编辑参数

时间:2014-08-08 05:12:21

标签: ruby-on-rails ruby ruby-on-rails-4

我的应用中有一个表单,提交时会创建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]仍然没有得到更新..请帮助。这是正确的方法吗?

2 个答案:

答案 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_savebefore_create

答案 1 :(得分:0)

试试这个

@order = Order.new(order_params)
@order.shop_number = 4
if @order.save 
......