【问题标题】:Button doesn't update in Ajax - Rails TutorialAjax 中的按钮不更新 - Rails 教程
【发布时间】:2012-12-20 01:16:41
【问题描述】:

我知道,当前已经问过了,但我无法修复它...

宝石文件

 gem 'rails', '3.2.9'
 gem 'jquery-rails' , '2.0.2'

类关系控制器

  def create
    @user = User.find(params[:relationship][:followed_id])
    current_user.follow!(@user)
    respond_to do |format|
      format.html { redirect_to @user }
      format.js
    end
  end

create.js.erb

  $("#follow_form").html("<%= escape_javascript(render('shared/unfollow')) %>")

我有部分\app\views\shared\_unfollow.html.erb

 <%= form_for current_user.relationships.find_by_followed_id(@account), 
        :html => { :method => :delete }, :remote => true do |f|%>
     <div class="actions"><%= f.submit 'unfollow' %></div>
 <% end %>

如果按下按钮,状态不会改变。尝试添加“.html_safe”也不行。

如果我这样做了

$("#follow_form").html("bla bla bla")

$("#follow_form").html("<%= 10+10 %>")

成功了

【问题讨论】:

  • 如果我按下按钮并手动更新页面,状态会改变

标签: ajax ruby-on-rails-3 railstutorial.org


【解决方案1】:

尝试改变

$("#follow_form").html("<%= escape_javascript(render('shared/unfollow')) %>")

$("#follow_form").html('<%= escape_javascript(render("shared/unfollow")) %>');

错误可能是由于 javascript 的语法无效导致的,因此您的 javascript 将不会被执行。您不会在任何浏览器中看到错误。但是您可以使用 Firefox 来查看 Ajax 响应。

我之前遇到过 similar problem

【讨论】:

  • 尝试将 " 更改为 ' ,没有恒河。但火狐控制台写 "HTTP/1.1 500 内部服务器错误",它是什么 :)
  • 我刚才在后面加了;,哈哈。查看日志文件,应用程序是否执行了那个 JS 文件?
  • 同时下载 firebug 并检查 ajax 响应恢复
  • 太棒了!按钮改变状态。显然,它在变量中丢失了。重新任命并获得。但发送了两个请求,好吧,我会处理的。谢谢
  • 它在变量中丢失了??
猜你喜欢
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-11
相关资源
最近更新 更多