加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Rails 3.1 ajax:成功处理

发布时间:2020-12-16 02:49:44 所属栏目:百科 来源:网络整理
导读:所以我玩CoffeeScript,Rails 3.1所有好东西.我有一个资源,包含所有常用路由索引,显示,创建,编辑,更新,销毁. 索引视图的表单使用:remote =真如此: %= form_for @todo,:remote = true do |f| % div class="field" %= f.label :name %br / %= f.text_field :n
所以我玩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并做所有花哨追加到待办事项列表等等. (这对我来说感觉更干净).

在我的todos.js.coffee中,我使用了以下内容:

$(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,他的博客文章最终给了我解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读