【发布时间】:2011-07-28 02:22:30
【问题描述】:
我正在尝试创建一个使用 AJAX 提交评论的评论页面,我使用的是 Rails 3,并且在我的 form_for 块中我正在设置:remote => true。查看 Chrome 开发人员工具,我可以看到服务器将页面 create.js.erb 作为文本/javascript 返回,但 javascript 没有被执行。
commentable_controller
def create
@commentable = Commentable.new
@commentable.body = params[:body]
@commentable.user = current_user
if @commentable.save
respond_to do |format|
format.js
end
end
end
create.js.erb
alert("hello world");
show.html.haml
#feed
=render :partial => "commentable/commentable", :collection => @commentables
-form_tag('/commentable/create', :remote => true) do
=hidden_field_tag :game_id, @game.id
=text_area_tag :body, nil, :rows => 3, :value => "160 Characters", :id => 'new_message'
=submit_tag "Post"
编辑:
进一步研究后,我可以看到请求以不正确的 HTML 格式进入。显然这与 Rails 3 使用的原型版本有关...... wtf rails
【问题讨论】:
-
我唯一能想到的可能是 jquery-mobile 以某种方式干扰了 create.js.erb 上的 javascript
-
你能用 :remote => true 显示视图吗?
-
我不确定 rails 3 但在以前版本的 rails 处理 ajax 请求时,javascript 不会加载...您已编写代码以手动包含 java 脚本.....跨度>
标签: javascript ruby-on-rails ajax