我是rails的新手,我正在努力实现无穷无尽的页面。 对于控制器索引,我有:
cargo bench
然后当我点击按钮“加载更多消息”时,它会触发ajax请求以获取下一页的消息。但是这次我不再需要@ bid,@ table变量了。但每次它到达我的控制器,它将再次击中数据库。
所以我的问题是,只有当它是ajax请求时才有一种方法来分配某些变量吗?或相反亦然?
由于
答案 0 :(得分:0)
发送AJAX请求时,您可以发送包含所需值的自定义标头。因此,请发送类似X-IS-AJAX-REQUEST
标头的内容,其值为true
。这样,您可以在Rails中获取该标头的值,并使用条件来仅设置需要设置的变量。这样的事情可以奏效:
def index
@messages = @conversation.messages.order('created_at DESC')
.paginate(page: params[:page],
per_page: 8)
@match = @conversation.match
unless request.headers['X-IS-AJAX-REQUEST'] then
@bid = @conversation.bid unless @conversation.bid.nil?
@table = @match.table unless @match.nil?
end
read_message
get_participant
end