我有一个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