Ajax&Rails复选框更新问题

时间:2018-08-16 03:16:28

标签: javascript

我对Rails很陌生,我对使用Ajax有疑问。我在页面上有未完成的任务和已完成的任务,因此,当用户单击“完成”按钮时,将重新加载页面,然后将选中的任务移至已完成的任务。但是,我希望执行此操作而无需重新加载页面。这对你们来说可能很容易,但是请考虑我是Rails和JS的新手。感谢您的帮助。

查看

c = b.sort { |(a,i),(b,j)| a[0]==b[0] ? i<=>j : a<=>b }
  #=> [["I", 0], ["love", 2], ["llamas", 3], ["really", 1]]
c.map(&:first)
  #=> ["I", "love", "llamas", "really"]

1 个答案:

答案 0 :(得分:0)

可能的做法是将urls=set() for link in aList: urls.update(re.findall(r'href=[\'"]?([^\'" >]+)', link)) for url in urls: print(url) 添加到form_tag中,这不会重新加载页面。

remote: true

与此同时,您必须在控制器中添加一个新动作

<%= form_tag complete_user_tasks_path, remote: true %>
<% end %>

在您看来,创建一个complete_user_tasks.js.erb,它将从控制器读取值并重新加载数据。

def complete
  user_id = params[:user_id]
  @user = User.find(user_id)
  @update_task = Task.where(id: params[:task_id]).update(complete: true)
  respond_to do |format|
    format.js
  end
end

或者如果您不使用局部的,则可以执行以下操作

$('#id_or_.class').html("<%= escape_javascript(render partial: 'section_which_needs_to_reload_data_is_stored_in_this_file', :locals => {update_task => @update_task, user => @user}) %>");