【发布时间】:2018-07-08 21:35:23
【问题描述】:
<div class="row" style="margin: 0 auto; max-width: 1000px; display: block;">
<div class="col-md-12" style="margin-top: 50px; margin-left: 25px; margin-bottom: 20px;">
<div class="row">
<%= @reviews.count %> Reviews
</div>
</div>
<div class="card-columns">
<%= render(:partial => 'reviews') %>
</div>
</div>
<div class="button">
View More
<div>
<style>
@media only screen and (min-width: 570px) {
.col-md-4 {
display: inline-block;
}
}
</style>
<script>
$('.button').click(function(){
$.ajax({
type: "GET",
url: "https://58a109ea.ngrok.io/shop/1?product_id=1259405967417",
data: {
offset: 2
},
success: function (result) {
$('.card-columns').html(`<%= render partial: 'reviews' %>`);
},
error: function (result, err) {
console.log(err);
}
});
});
</script>
我的显示视图中有上述代码。当单击“查看更多”按钮时,我需要它向控制器发送一个参数并在活动记录调用中使用该参数以更改显示项目的限制。
这是在 ajax 调用后接收参数的控制器:
class ShopController < ApplicationController
def show
if request.env["HTTP_ORIGIN"]
request_domain = request.env["HTTP_ORIGIN"]
request_domain.slice!(0, 8)
shopify_store_id = Shop.find_by(shopify_domain: "#{request_domain}").id
render json: shopify_store_id
end
if params[:offset] != '' && params[:offset] != nil
session[:offset] = params[:offset]
end
@reviews = Review.where(product_id: params[:product_id]).limit(session[:offset])
end
end
如果我使用 puts 语句,我可以看到参数正在传入,但由于某种原因,在我刷新页面之前视图中没有任何变化。有人对我可以尝试什么有任何想法吗?
【问题讨论】:
-
<%= render partial: 'reviews' %>您的浏览器无法处理此问题.. 您必须发送字符串化的 html 作为来自控制器的 AJAX 调用的响应 -
@sa77 感谢您的回复。怎么样?
标签: jquery ruby-on-rails ajax