いくつかのjavascripts/AJAXで軽微な問題が発生しました。誰かが私を助けたり、正しい方向に向けることを望んでいました。フォームにテキストボックスを設定するドロップダウンボックスの選択
私がしようとしているのは、同一フォーム内のcollection_selectを使用して、カートンごとの価格フィールドを設定することです。これは私の注文テーブルへのエントリを作成すると考えられる注文フォームです。以下のようにフォームビュー:
new.html.erb
<h1>Add a new order for <%= @customer.name %></h1>
<div class="row">
<%= form_for(@order) do |f| %>
<div class="col-md-6">
<%= render 'shared/error_messages', object: f.object %>
<%= f.hidden_field :customer_id, :value => @customer.id %>
<h3>Order Details</h3>
<%= f.label :address_id, "Delivery Address" %>
<%= f.collection_select :address_id, @addresses, :id, :select_address, :prompt => "Select delivery location",class: 'form-control' %></br>
<%= f.label :remark, "Order Remark" %>
<%= f.text_area :remark, class: 'form-control' %></br>
<h3>What items would you like to place?</h3>
<%= f.add_nested_fields_link :single_orders, "Add Product" %>
<%= f.nested_fields_for :single_orders do |builder| %>
<%= builder.collection_select :product_id, @products, :id, :select_product, {:prompt => "choose product"}, {:class => "product_selection form-control"} %>
<%= builder.text_field :ctn_price, placeholder: "Price/carton", id: "price", class: 'ctn_price_field form-control' %>
<%= builder.text_field :qty, placeholder: "Quantity",id: "quantity", class: 'form-control' %>
<%= builder.text_field :price, placeholder: "Amount", id: "total-amount", readonly: true, class: 'form-control' %>
<%= builder.remove_nested_fields_link %>
<% end %>
</div>
<%= f.submit "place order", class: "btn btn-primary" %>
<% end %>
</div>
私はcollection_selectをしたいと思います:PRODUCT_IDは、製品テーブル内のすべての製品を引き出します。ユーザーがドロップダウンから注文したい商品を選択すると、選択した商品の価格がtext_field:ctn_priceに入力されます。
class SingleOrder < ActiveRecord::Base
belongs_to :order
belongs_to :product
validates :order, presence: true
validates :product_id, presence: true
validates :qty, presence: true
validates :price, presence: true
validates :ctn_price, presence: true
end
single_order.rb
product.rb
class Product < ActiveRecord::Base
has_many :special_prices, dependent: :destroy
has_many :single_orders
has_many :package_orders_products
before_save :upcase_stock_code
validates :name, presence: true, length: { maximum: 50 }
validates :stock_code, presence: true, length: { maximum: 20 }
validates :status, presence: true, length: { maximum: 10 }
validates :price, presence: true
private
def select_product
"#{name} - #{price}"
end
# Converts stock_code to all upper-case.
def upcase_stock_code
self.stock_code = stock_code.upcase
end
end
私は事前に任意の助け日:( 感謝のために立ち往生しているとしてすべてのヘルプは高く評価される。
ユーザーがドロップダウンリストで製品を選択すると、製品IDを持つサーバーにajaxリクエストを呼び出してから、製品の価格を取得し、価格のテキストフィールドの値を更新できます。 – Thanh