San*_*ago 8 javascript ajax jquery ruby-on-rails ruby-on-rails-4
我在尝试做一些我认为相当简单的事情时遇到了很多麻烦.
我有一个项目列表,比方说,todos.在该列表的底部,我有一个文本字段,我在其中添加新项目到该列表.我想这样做,以便新项目动态地添加到该列表的底部,而无需像聊天窗口那样刷新整个页面.
我提交了提交表单remote: true并成功提交,但没有重新加载页面,但我无法让新项目同时显示在列表的底部.我必须刷新页面才能看到更改.
我尝试了一些我在SO上找到的不同方法(这里不乏类似的问题)和网络,甚至是一个名为Sync的宝石,但每个都有自己的错误和问题,我无法工作正常.他们每个人都可能是自己的问题.所以我要问:是否有一个"配方"肯定会在Rails 4中成功实现这一点?
让我们说,现在你有一个用户表单提交,
<%=form_for @user,remote: true%><%end%>
Run Code Online (Sandbox Code Playgroud)
你还有一个控制器,
UsersController
Run Code Online (Sandbox Code Playgroud)
在你的控制器中,你有一个功能,
def create
#something
end
Run Code Online (Sandbox Code Playgroud)
这是形式.
你唯一需要修改的功能就像
def create
#something
respond_to do |format|
format.js
format.html
end
end
Run Code Online (Sandbox Code Playgroud)
然后在您的视图中,在view/users /目录下,创建一个create.js文件,在文件中,您可以执行js操作,比如获取新记录,并将新记录追加到用户列表中.
参考:
http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#form-for
您可以使用 javascript 查看更改。例如,让我们考虑一个带有操作索引的控制器 Mycontroller,并且您正在索引上提交表单。然后在视图 my_controller/index.js.erb 中创建一个文件
为了反映更改,请在此模板中使用 javascript。肯定是远程发送 ajax 调用,因此要查看更改,您需要使用 javascript 进行一些操作。
谢谢
| 归档时间: |
|
| 查看次数: |
13159 次 |
| 最近记录: |