2012-06-13 49 views
3

因此,我正在爲幾個javascript動作而做些調整。所以,舉例來說,Rails,CoffeeScript和ERB

def create 
    #code omitted 
    respond_to do |format| 
    if @post.save 
     format.html { redirect_to discussion_posts_path(@post.discussion), notice: 'Post was successfully created.' } 
     format.js 
    else 
     format.html { render :action => "new" } 
    end 
    end 
end 

#create.js.erb 
$("#discussion_posts_table").append("<%= escape_javascript(render(@post)) %>"); 
$("#post_body").val(""); 

現在可以說,我想這些JavaScript函數轉換爲CoffeeScript的(撇開它獲得幾乎沒有任何的事實),如果我的文件更改爲create.js.coffee.erb它停止工作。在UJS中使用coffeescript的正確方法是什麼?

爲了記錄,我在我的Gemfile中有coffee-rails,並且在資產管道中使用了coffeescript。

回答

3

我以前見過.coffee.erb。仍在四處尋找該項目。

確定,如果他們仍然在您的看法,只是用.js.coffee

編輯1:顯然的Rails仍然將處理ERB奇怪的。 編輯2:另外,您可以將erb添加到js.coffee文件的末尾,它們是按照特定順序進行預處理的,因此可能會拋出Rails。

+0

Huh。那很有意思。它仍然處理erb而沒有.erb擴展名。但現在它提交表單兩次。嗯。 – DVG

0

您需要將coffee-rails gem添加到您的項目中才能使用。

+0

我確實有咖啡欄的寶石。 Coffeescript在資產管道中工作,而不是在視圖層面 – DVG