参数在控制台中但不传递给数据库

时间:2017-11-09 09:17:48

标签: ruby-on-rails

主页中的

 <%=  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控制器中

** def new

@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

def 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 consoler获取prd_allisland_flat_deliveries的属性,但prd_all_island_flat_deliveries填充空值

1 个答案:

答案 0 :(得分:0)

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

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

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