所以我玩CoffeeScript,Rails 3.1所有好东西.我有一个资源,包含所有常用路由索引,显示,创建,编辑,更新,销毁.
索引视图的表单使用:remote =>真如此:
<%= form_for @todo,:remote => true do |f| %> <div class="field"> <%= f.label :name %><br /> <%= f.text_field :name %> </div> <div class="actions"> <%= f.submit %> </div> <% end %>
def create @todo = Todo.new(params[:todo]) respond_to do |format| if @todo.save format.html { redirect_to @todo,notice: 'Todo was successfully created.' } format.json { render json: @todo,status: :created,location: @todo } format.js {render json: @todo } else format.html { render action: "new" } format.json { render json: @todo.errors,status: :unprocessable_entity } end end end
我试图不使用.js.erb视图,因为我宁愿处理返回的JSON并做所有花哨追加到待办事项列表等等. (这对我来说感觉更干净).
$(document).ready -> $("#new_todo") .bind "ajax:success",(event,data) -> alert("Ajax SUCCESS!!!")
(是的,只是打开一个警告框不起作用)我尝试加载,但只是无法触发此事件.请求确实成功完成,并添加了新的待办事项.
任何帮助都将不胜感激.谢谢
解决方法
开始倒过rails.js并想知道是否有任何ajax:回调正在被提升.
原来他们很好的发送和错误…挂在……错误?怎么会这样?新todo的创建成功发生,响应是我期望的JSON.但是在单步执行回调代码时,我注意到标签错误无效.
快速谷歌后来带我到这篇文章http://blog.seqmedia.com/?p=484
事实证明,JSON正在作为字符串返回,Firbug得到了并正确解析它以便我可以检查响应.但是rails.js和js一般都不知道如何处理字符串并抛出上述错误(我可能会默默地说).
解决方案是在respond_to中
format.js {render json: @todo,content_type: 'text/json' }
有点感谢Trevor Burnham(就像BTW这本书)的帮助和sequence media的Amy,他的博客文章最终给了我解决方案.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。