小编典典

jQuery + Ajax + Haml。js.erb文件未触发

ajax

阅读了一些经验后,我觉得这个问题可能需要再次提出。在Rails3中编码时,当用户尝试在我的应用程序的另一个元素上创建帖子时,我正在尝试实现一些平滑的Ajax效果。这是我关注的代码:

app / views / posts / new.html.haml

- form_for @post, :remote=>true do |f|
    = f.text_area :content
    = submit_tag "Post"

app / controllers / post_controller.rb

def create
  @comment = Post.new(params[:post])
  @comment.save
end

app / views / posts / create.js.erb:

alert("ajax worked!");

我遵循了在UJS Railscast上看到的内容,但是似乎没有任何反应。不仅如此,firebug也无法给我任何有关正在发生的事情的描述性证据。它告诉我,它是在提交后成为新帖子对象的,但没有其他内容。

有任何想法吗?


阅读 233

收藏
2020-07-26

共1个答案

小编典典

我找到了答案!问题是,当控制器渲染视图时,它包括我的应用程序的整体布局。布局正在屈服于渲染动作,因此.js.erb文件中包含的我的javascript代码被吐到了application.rhtml中。我通过将其包含在控制器操作中以显示我的帖子来解决此问题:

respond_to do |format|
  format.js {render :layout=>false}
end
2020-07-26