【问题标题】:parameters are in the console but not passing to the database参数在控制台中但不传递到数据库
【发布时间】:2017-11-09 09:17:48
【问题描述】:

在主窗体中

 <%=  p.fields_for :prd_allisland_flat_deliveries  do |i| %>

   <%= render(:partial => 'prd_allisland_flat_delivery_field', :locals => {:f => i})%>
 <% end %>

在prd_allisland_flat_delivery_field表单部分

   <div class="row" style="padding-bottom: 25px">
          <div class="col-md-2"></div>
          <div class="col-md-4">
            <%= f.label :delivery_period %>
          </div>



            <div class="col-md-4">


     <%= f.text_field(:delivery_period, {placeholder: '0', class: 'form-control input_border input_field_text_align_right'})%>
          </div>
          <div class="col-md-2"></div>
   </div>

        <div class="row" style="padding-bottom: 25px">
          <div class="col-md-2"></div>
          <div class="col-md-4">
            <%= f.label :delivery_rate %>
          </div>
          <div class="col-md-4">
            <%= f.text_field(:delivery_rate, {placeholder: 'Rs. 0.00', class: 'form-control input_border input_field_text_align_right'})%>
          </div>

        </div> 

在prd_item控制器中

**定义新

@item = PrdItem.new

@item.build_prd_allisland_flat_delivery

结束**

写完这个创建方法

**

if @item.save

  if @item.delivery_type == 1

     @all_island_flat = PrdAllislandFlatDelivery.new(item_params[:prd_allisland_flat_deliveries_attributes])
    @all_island_flat.save
  end

结束**

item_params

定义项目参数

    params.require(:prd_item).permit(:item_name, :brand, :item_no, :short_description, :long_description, :prd_type_id, :usr_vendor_property_id, :price,:base_price, :price_discount, :percentage_discount, :stock_count, :availability, :tags, :remove_image, :delivery_type , :min_stock_count,

                                 prd_item_images_attributes: [:id, :image, :description, :link, :_destroy ],

                                 prd_temp_variation_stores_attributes: [:id, :product_variations, :variation_items, :_destroy],
                                 prd_temp_compound_stores_attributes:[:id,:compound, :compound_item, :_destroy],
                                 prd_temp_spec_stores_attributes:[:id,:compound, :compound_item, :_destroy],
                                 prd_allisland_flat_deliveries_attributes: [:id,:delivery_period,:delivery_rate],
                                 prd_province_vise_deliveries_attributes: [:id , :province_name , :delivery_rate, :delivery_period]

                                 )

结束

rails 控制台获取 prd_allisland_flat_deliveries 的属性,但 prd_all_island_flat_deliveries 填充空值

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    这是您的完整创建方法吗?如果是这样,您需要了解每个请求都与其他请求分开,创建请求不知道新请求中发生了什么。

    在您的 create 方法中,您需要构建基本对象,然后从参数更新对象。

    def create
      @item = PrdItem.new
      @item.update(item_params)
      if @item.save ...
    

    【讨论】:

    • 这不是完整的创建方法,我只在我的创建方法中发布了相关的部分,我像你在这里所做的那样创建了对象
    • 不,这不是我创建方法中的完整创建方法,我已经像您在此处所做的那样创建了项目对象
    猜你喜欢
    • 2011-09-04
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2021-02-09
    • 2018-03-02
    相关资源
    最近更新 更多