如何在Rails中使用CoffeeScript?

3

在我的控制器的create动作中,我有以下内容:

def create
  @article = Article.find(params[:id])

  respond_to do |format|
    if @comment.save
      format.js { render 'success.js' }
    else
      format.js { render 'failed.js' }
    end
  end
end

在我的app/views/comments/failed.js.coffee中,我有以下内容:
alert 'Write smth!' if $("#comments_error").length == 0

我收到了以下错误:

ActionView::MissingTemplate (Missing template comments/failed,
  inherited_resources/base/failed, application/failed with
  {:locale=>[:en, :en],
   :formats=>[:js, :html],
   :handlers=>[:haml, :builder, :erb]})

我做错了什么?
1个回答

7

在撰写本文时,Rails不支持响应coffee-script文件。

然而,这将会改变。

与此同时,在您的Gemfile中添加:

gem 'coffeebeans'

将你的视图命名为action.js.coffee。

额外的好处是,即使文件名中没有声明erb,该文件也会先通过erb处理。


我还有一个问题,如果我的action.js.coffee文件中有一些ruby代码,我该怎么办?我尝试将action.js.coffee重命名为action.js.coffee.erb,但是我收到了错误:ActionView :: MissingTemplate - zolter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接