在轨道中选择产品时设置价格值

时间:2014-04-03 15:50:06

标签: javascript jquery ruby-on-rails ajax

Rails新手在这里。我遇到了如何为价格设置默认值的问题。

以下是代码:

<%= simple_form_for(@order) do |f| %>
  <%= f.error_notification %>

  <%= f.input :customer_id, collection: Customer.all, %>
  <%= f.simple_fields_for :items do |i| %>
      <%= render 'item_fields', :f => i %>     
  <% end %>
    <%= link_to_add_association '+ product, f, :items %>

<% end %>

部分_item_fields形式:

<%= f.input :qty %>
<%= f.select :product_id, Product.all.map { |p| [p.name, p.id }, { include_blank: true } %>
<%= f.text_field :price %>
<%= link_to_remove_association image_tag("delete.png") %>    

计划是在选择产品时设置价格值,以便保存。尝试了很多没有运气的方法。

产品表有名称,价格字段。

我需要你的帮助来实现这一目标。 最好的方法是什么? Ajax,javascript?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

基本上,当您选择product_id时,价格会被设置,而不会向服务器发送任何内容?你需要JavaScript / JQuery。

规则是当您想要实时更改某些内容而无需访问服务器时,您使用JavaScript。类似$('.product_id').on('change', function(){$('.price_field').value = $('.product_id').data('price')})之类的东西或类似的东西(在JQuery上有点生疏,但我认为事情可以从这里管理)。

答案 1 :(得分:0)

Product.all.collect {| p | [p.name,p.id,{&#39; data-price&#39; =&gt; p.price}]} 然后你可以通过$(&#39; .product_id&#39;)。数据(&#39;价格&#39;)

来访问它