为什么我的create.js.erb没有渲染?

时间:2011-07-28 02:22:31

标签: javascript ruby-on-rails ajax

我正在尝试创建一个评论页面,其中评论是用AJAX提交的,我正在使用Rails 3,而在我的form_for块中我正在设置:remote =>真正。看看Chrome开发人员工具,我可以看到服务器将页面create.js.erb作为text / 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

1 个答案:

答案 0 :(得分:0)

你是否为rails3正确安装了jquery?例如。使用jquery-rails gem它非常简单。只需将gem添加到Gemfile并输入

即可
rails g jquery:install

然后你做的应该只是工作。