rails仅在它的ajax请求时分配变量,反之亦然

时间:2017-03-22 14:55:21

标签: ruby-on-rails ajax pagination

我是rails的新手,我正在努力实现无穷无尽的页面。 对于控制器索引,我有:

cargo bench

然后当我点击按钮“加载更多消息”时,它会触发ajax请求以获取下一页的消息。但是这次我不再需要@ bid,@ table变量了。但每次它到达我的控制器,它将再次击中数据库。

所以我的问题是,只有当它是ajax请求时才有一种方法来分配某些变量吗?或相反亦然?

由于

1 个答案:

答案 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