Rails:在AJAX调用后保持控制器

时间:2017-08-15 10:45:57

标签: jquery ruby-on-rails ajax

从视图中调用AJAX后,我对控制器中的数据有疑问。

我有一个使用remote的下拉列表:true可以使用AJAX

<%= t('label') %> <%= collection_select("items", :id , @items, :id, :selector_title, { :prompt => false, :selected => @selected_id }, {:data => {:remote => true, :url => "/controller/do_something", :method => "post"}}) %>

在路线文件中我指定了路线

 match '/path_to_controller_method',      to: 'controller#do_something', via: 'post'

这一切都很好。 do_something方法在控制器中执行。 我不明白的是,为什么变量如:

@wrapper
我在索引方法中初始化的

nil?在从视图进行AJAX调用后,是否必须再次重新初始化所有变量?

1 个答案:

答案 0 :(得分:0)

AJAX调用是一个独立调用,具有指定的控制器和该控制器中指定的方法。它的工作方式与普通请求非常相似,只是它不会重新加载整个页面。

现在,变量:index - 如果它已在do_something方法中初始化,现在需要在指定的方法中初始化:before_action,或者你可以做类似的事情before_action,在那里初始化方法,然后在index之前调用do_something&amp; before_action

总而言之,AJAX调用几乎与任何其他请求一样,除非使用dist = 10 mylist = [40, 30, 20, 15] # this is a sorted list for j in range(0, len(mylist)): if mylist[j] < dist & dist> mylist[j+1]: print (mylist[j], '<' ,dist, '>', mylist[j+1]) #drop 40 #shift the list so that is becomes: [30,20, 15,10] ,否则需要初始化所有实例变量。