我在尝试做一些我认为相当简单的事情时遇到了很多麻烦.
我有一个项目列表,比方说,todos.在该列表的底部,我有一个文本字段,我在其中添加新项目到该列表.我想这样做,以便新项目动态地添加到该列表的底部,而无需像聊天窗口那样刷新整个页面.
我将提交表单设置为remote:true并且它成功提交而不重新加载页面,但我不能同时将新项目显示在列表的底部.我必须刷新页面才能看到更改.
我尝试了一些我在SO上找到的不同方法(这里不乏类似的问题)和网络,甚至是一个名为Sync的宝石,但每个都有自己的错误和问题,我无法工作正常.他们每个人都可能是自己的SO问题.所以我要问:是否有一个“配方”肯定会在Rails 4中成功实现这一点?
解决方法
让我们说,现在你有一个用户表单提交,
<%=form_for @user,remote: true%><%end%>
你还有一个控制器,
UsersController
在你的控制器中,你有一个功能,
def create #something end
这是形式.
你唯一需要的是修改像这样的功能
def create #something respond_to do |format| format.js format.html end end
然后在你的视图中,在view / users /目录下,创建一个create.js文件,在文件中,你可以执行js动作,比如获取新记录,并将新记录追加到用户列表中.
参考:
http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#form-for
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。