Jquery Rails-如何在Ajax GET方法请求后重新渲染部分
Rail4,jQueryAjax 我需要显示在-jQuery Datepicker上选择的一天的订单 我设置了Ajax请求,并在我的控制器中加入了一些人员,但我无法使其正常工作。需要建议 订单\u控制器Jquery Rails-如何在Ajax GET方法请求后重新渲染部分,jquery,ajax,ruby-on-rails-3,ruby-on-rails-4,Jquery,Ajax,Ruby On Rails 3,Ruby On Rails 4,Rail4,jQueryAjax 我需要显示在-jQuery Datepicker上选择的一天的订单 我设置了Ajax请求,并在我的控制器中加入了一些人员,但我无法使其正常工作。需要建议 订单\u控制器 def index @order = params[:date] ? Order.where(date: params[:date]) : Order.get_order_today respond_to do |format| format.html # render inde
def index
@order = params[:date] ? Order.where(date: params[:date]) : Order.get_order_today
respond_to do |format|
format.html # render index.html.haml
end
%h3 Order info
%table.table.table-striped
%tr
%th Meal
%th Price
- if (!@order.nil?)
- @order.products.each do |one_order|
%tr
%th=one_order.product_name
%th=one_order.product_price
- else
%tr
%th no order yet
%th
- if (!@order.nil?)
.col-md-8
%span=link_to "Cancel order", delete_order_path(id: @order.id), method: :delete, :data => {:confirm => "You Sure?"},
class: "btn btn-primary"
- else
.col-md-8
%span=link_to "Create order", new_order_path , class: "btn btn-primary"
.col-md-4.total-price-div
%h4 Order coast: #{get_order_coast}
结束
order.js.咖啡
$ ->
$('#datepicker').datepicker dateFormat: 'yy-mm-dd', onSelect: (dateStr) ->
$.ajax ->
type: "GET",
url: "orders/index",
dataType: "html",
data: {date: dateStr}
success: ->
# Should i do something here for render default index view?
console.log("everything is ok ;)")
查看/订单/索引
#order.col-xs-12.col-sm-6.col-md-8
= render 'orders/order'
#datepicker.col-xs-6.col-md-4.date-picker-div
查看/订单/\u订单
def index
@order = params[:date] ? Order.where(date: params[:date]) : Order.get_order_today
respond_to do |format|
format.html # render index.html.haml
end
%h3 Order info
%table.table.table-striped
%tr
%th Meal
%th Price
- if (!@order.nil?)
- @order.products.each do |one_order|
%tr
%th=one_order.product_name
%th=one_order.product_price
- else
%tr
%th no order yet
%th
- if (!@order.nil?)
.col-md-8
%span=link_to "Cancel order", delete_order_path(id: @order.id), method: :delete, :data => {:confirm => "You Sure?"},
class: "btn btn-primary"
- else
.col-md-8
%span=link_to "Create order", new_order_path , class: "btn btn-primary"
.col-md-4.total-price-div
%h4 Order coast: #{get_order_coast}
-控制台显示日期选择器选择日期的时间
控制台:
def index
@order = params[:date] ? Order.where(date: params[:date]) : Order.get_order_today
respond_to do |format|
format.html # render index.html.haml
format.js
end
end
#order-block
= render 'orders/order'
添加控制器索引
def index
@order = params[:date] ? Order.where(date: params[:date]) : Order.get_order_today
respond_to do |format|
format.html # render index.html.haml
format.js # render for the js request
end
end
然后,您将在AJAX成功中获得响应,或者您也可以为get response创建index.js.erb
$("#activity_detail").html('<%= escape_javascript(render :partial => 'orders/order') %>');
$(“#活动_详情”).html(“'orders/order')%>”;
该版本的工单.coffee
$(document).ready ->
$('#datepicker').datepicker dateFormat: 'yy-mm-dd', onSelect: (dateStr) ->
$.get("orders", {dateStr})
现在我需要渲染顺序部分:
def index
@order = params[:date] ? Order.where(date: params[:date]) : Order.get_order_today
respond_to do |format|
format.html # render index.html.haml
format.js
end
end
#order-block
= render 'orders/order'
index.js.haml:
:javascript
$("#order").html('= escape_javascript(render :partial => 'orders/order') ');
$(document).ready ->
$('#datepicker').datepicker( dateFormat: 'yy-mm-dd', onSelect: (dateStr) ->
$.ajax(
url: "orders",
data: {date: dateStr},
cache: false,
dataType: "html",
success: (response) ->
$('#order-block').html(response)
)
)
但是,在重新呈现我的订单信息时仍然没有发生任何事情。我知道如何使用参数获取ajax并重新呈现视图。最后=) 我的咖啡:
:javascript
$("#order").html('= escape_javascript(render :partial => 'orders/order') ');
$(document).ready ->
$('#datepicker').datepicker( dateFormat: 'yy-mm-dd', onSelect: (dateStr) ->
$.ajax(
url: "orders",
data: {date: dateStr},
cache: false,
dataType: "html",
success: (response) ->
$('#order-block').html(response)
)
)
index.js.haml
:javascript
$("#order").html("#{escape_javascript(render :partial => 'orders/order', locals: { orders: @order } )}");
订单/控制器:
def index
if (!params[:date].nil?)
@order = Order.find_by(date: params[:date])
else
@order = Order.get_order_today
end
respond_to do |format|
format.html # render index.html.haml
format.js # default render - index.js.haml
end
end
我重新整理了一下我的观点:
def index
@order = params[:date] ? Order.where(date: params[:date]) : Order.get_order_today
respond_to do |format|
format.html # render index.html.haml
format.js
end
end
#order-block
= render 'orders/order'
我创建了index.js.haml-但它仍然不起作用..:javascript$(“#order”).html('=escape_javascript(render:partial=>'orders/order'));你在index.js.haml上得到回复了吗