2011-02-25 69 views
0

有人可以告訴我如何把JavaScript放在控制器中。我在會話控制器試圖成才這樣的:如何把JavaScript放在控制器中使用Rails 3.0.3和Ruby 1.9.2

 
def sign_in 
    if user.nil? 
     @title = "Sign in" 
     render :js => "alert('Invalid email/password combination.');" 
    else 
     sign_in user 
     redirect_back_or user  
    end 
end 

時,我試過了,頁面顯示爲文本格式:警報(「無效的電子郵件/密碼組合」);

我不想使用Flash消息。我真的想使用JavaScript警告......請幫助...

+0

顯然它不工作,請檢查此要點https://gist.github.com/416046。使用javascript_tag – Zimbabao 2011-02-25 06:30:50

回答

3

對於UJS的方式做到這一點:

在controller.rb

def sign_in 
    if user.nil?  
     @title = "Sign in"  
     respond_to do |format|    
      format.js  
     end 
    end  
    else  
     sign_in user  
     redirect_back_or user   
    end  
end 

*在sign_in JS .erb *

alert('Invalid email/password combination.'); 

這會給你教會和國家的一個很好的分離。 controller.rb中的所有ruby代碼,view.js.erb中的所有javascript。

+0

非常感謝你的人..我有這樣的頭痛,但你給了治療......我是如此新的軌道。 – johan 2011-02-28 00:59:23

+0

一個簡單的問題...如果我的控制器名稱是sessions_controller.rb並且動作是sign_in,那麼我的ujs的名稱應該是什麼?它是sign_in.js.erb還是sessions.js.erb?我有點困惑,如果在每一個行動中我會創建一個新的js.erb。 – johan 2011-02-28 01:04:23

+0

應該是[action] .js.erb在[controller]視圖文件夾中 – 2012-07-19 10:29:38

相關問題