Rails 3使用RJS并让它在Internet Explorer中工作



我有一个rails 3应用程序,它有相当多的ajax功能,非常复杂,它在每个浏览器中都能很好地工作,但IE,虽然我不确定为什么,我猜它与HTML5有关。以下是我的应用程序的部分内容(为简洁而编辑)

视图中的

:

<li id="category_<%= category.id %>">
  <%= link_to "#{category.title}", new_categorization_path(current_user.id, :category_id => category.id), :remote => true %>
</li>

在控制器中:

class CategorizationsController <程序控制器>

  def new
    @category = Category.find(params[:category_id])
    @categorization = Categorization.create(:user_id => current_user.id, :category_id => params[:category_id])
    render :update do |page|
      page.replace_html "category_#{params[:category_id]}", "#{link_to "#{@category.title}", categorization_path(current_user.id, :category_id => @category.id), :method => :delete, :remote => true, :style => "background-color:yellow;"}"
    end
  end

这段代码在所有其他浏览器中都可以完美地工作,但IE(目前使用IE8,但我相信它在所有版本的IE中是相同的)。在IE中,它似乎部分工作,当我点击它,链接得到一个黄色的背景(因为它应该),但它似乎没有更新HTML在所有,当我检查源它似乎保持不变,当我再次点击链接什么都没有发生。此外,如果我检查DB,它似乎根本没有创建一个新的分类。

我在这里错过了什么?Mime类型?我应该把代码在一个单独的js。erb文件?

谢谢!

您使用了两次双引号"。试试这个(用'代替")

  def new
    @category = Category.find(params[:category_id])
    @categorization = Categorization.create(:user_id => current_user.id, :category_id => params[:category_id])
    render :update do |page|
      page.replace_html "category_#{params[:category_id]}", "#{link_to '#{@category.title}', categorization_path(current_user.id, :category_id => @category.id), :method => :delete, :remote => true, :style => "background-color:yellow;"}"
    end
  end

我最终在一个单独的UJS JS文件中完成了所有相关的AJAX,这似乎已经完成了。

A la: new.js.erb

相关内容

  • 没有找到相关文章

最新更新