在rails.syntax错误,意外的tIDENTIFIER上使用jQuery中的jQuery绑定下拉列表,期待':'render:text => [@ storeitem.unit_pr ... ^

时间:2017-03-29 10:17:05

标签: ruby ruby-on-rails-4

我有两个控制器Indent和InventoryStoreItem关系是'indent-'has_many:inventory_store_items'和inventory_store_item-'belongs_to:indent'。当我从indent-form选择下拉为store_item_id(即是item_name)时,它将获取商店项目属性ie是来自商店项目的unit_price,quantity,batch_no。当用户从选择框中选择下拉选项时,我尝试使用。而不是变化事件将通过ajax发射。但是js没有用。这是我的代码。

indent_controller

class IndentsController < ApplicationController
def index_indent 
 @store_items = InventoryStoreItem.find(params[:id])
 @indents = Indent.all
 @stores = InventoryStore.all
end

def load_item_data
 @storeitem = InventoryStoreItem.find_by_id(params[:inventory_store_item_id]).present? InventoryStoreItem.find(params[:inventory_store_item_id]): InventoryStoreItem.unscoped.find_by_id(params[:inventory_store_item_id])
end

indent.js.coffee

 #Load Items data when an item is selected from dropdown list
'$('#select_inventory_store_item_id').on('change',function(){ var inventory_store_item_id = $('#select_inventory_store_item_id').val() $.ajax({ url: '/indents/load_item_data', type: 'GET', data: {'id' : inventory_store_item_id}, dataType: 'json' }).success(function(data) })'         

new_indent

<%= form_for @indent, url:{controller: 'indents',action:'create_indent'} do |c|%>
 <div class="form-group">
  <div class="col-md-3"><b>Indent No:</b></div>
   <%=c.text_field :indent_no, placeholder: "Indent No", class: "form-control",style:"width:250px"%>
 </div>

 <div class="form-group">
  <div class="col-md-3"><b>Expected Date:</b></div>
   <%= c.date_field :expected_date, :value => Time.now.strftime('%Y-%m-%d'),class: "datepicker form-control",style:"width:250px" %>
 </div>

 <div class="form-group">
  <div class="col-md-3"><b>Description</b></div>
   <%=c.text_field :description, class: "form-control",style: 'width:350px;height:100px'%>
 </div>

 <h3>Indent Items</h3>
 <div class="form-group">
  <div class="col-md-3"><b>Required</b></div>
   <%=c.text_field :required, placeholder: "Required", class: "form-control",style:"width:250px"%>
 </div>

 <div class="form-group">
  <div class="col-md-3"><b>Pending</b></div>
   <%=c.text_field :pending, placeholder: "Pending", class: "form-control",style:"width:250px"%>
  </div>

 <div class="form-group">
  <div class="col-md-3"> <b>Store Item:</b></div>
   <td class="col-3"> <%= c.select :inventory_store_item_id,InventoryStoreItem.all.collect{|b| [b.item_name,b.id]},{prompt:"select Item"}%></td>
 </div>
 <div class="form-group">
  <div class="col-md-3"><b>Unit_price</b></div>
   <%=text_field_tag :unit_price%>
 </div>

 <div class="form-group">
  <div class="col-md-3"><b>Quantity</b></div>
   <%=text_field_tag :quantity%>
 </div>

 <div class="form-group">
  <div class="col-md-3"><b>Batch No</b></div>
   <%=text_field_tag :batch_no%>
 </div>

 <div class="col-sm-4 col-sm-offset-4"> 
  <div class="form-actions">               
   <%= c.submit 'Save', class: "btn btn-primary"%>
 </div>

1 个答案:

答案 0 :(得分:0)

data: {id: inventory_store_item_id} 它应该是data: {inventory_store_item_id: inventory_store_item_id}

您的load_item_data操作仍然有误。语法为condition ? true : false

@storeitem = InventoryStoreItem.find_by_id(params[:inventory_store_item_id]).present? ? InventoryStoreItem.find(params[:inventory_store_item_id]) : InventoryStoreItem.unscoped.find_by_id(params[:inventory_store_item_id])