从视图中调用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调用后,是否必须再次重新初始化所有变量?
答案 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]
,否则需要初始化所有实例变量。