2012-11-30 22 views
3

我在我的視圖上有ajax鏈接,我想在它們被髮送到實際操作之前檢查密碼,因爲我使用的是設計控制器,我僅限於使用特定的密碼檢查。 以下是我希望用於驗證的咖啡腳本。用js.coffee腳本混合ruby代碼

。 <%=的link_to 「CANCEL PAYMENT」,{:行動=> 「some_action」:信息=> n.id},類: 「css_class」:遠程=>真%>

我使用以上鍊接

我正在尋找以下類型的代碼。

$("a.css_class").live "click", -> 
     password_variable = prompt("Enter password", "password") 
     if |ruby-code|current_user.valid_password?(password_variable)|ruby-code| 
     true 
     else 
     alert "You entered wrong password" 
     false 

紅寶石代碼如何與咖啡腳本混合使用。

回答

4

如果它是一個靜態資產的代碼,那麼顯然你不能在服務器端添加一些動態的功能。它會被轉換成一個普通的JavaScript代碼片段並放入您的應用程序的public文件夾中。

如果你有你的看法叫做* .coffee,那麼你已經完成了所有的準備工作。這樣命名的意見將被自動預加工與再培訓局引擎(通過<%= ... %>):

意見 /some/thing.coffee:

alert "Server's time is <%= Time.now %>" 
+0

我認爲,thenIt'll更好地重定向到另一個首先動作,然後用render調用一個函數:js =>「function();」 有什麼說的? –

+0

@NishutoshSharma我想做一些'取消'ajax行動。然後,您可以在提示字段輸入密碼後通過ajax訪問它。所以,不要使用遠程'link_to',而是使'link_to_function'成爲http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-link_to_function。它會詢問密碼併發出一些非GET請求來取消訂單。 – jdoe

+0

在Rails 4中,我發現有必要命名文件'views/some/thing.coffee.erb',以便處理嵌入的Ruby語句。這對嵌入存儲在'secrets.yml'中的Rails 4的配置非常有用。 – scarver2

0

我有同樣的疑問。

背景:

我正在爲我公司編寫ERP。它使用西班牙文,英文和日文信息。

我使用的CoffeeScript,HAML,SCSS,NO ERB

所以,多語種信息工作在我所有的意見很好,但我加一個.js庫有一個不錯的組合框與下拉更換瀏覽器的醜陋的Dropbox列表,它使用散列來保存本地語言中的消息。

所以我所做的就是:

_form.html.haml

:coffeescript 
    menssages_for_select2 [ 
    "#{I18n.t('select.formatNoMatches')}" 
    "#{I18n.t('select.formatInputTooShort')}" 
    "#{I18n.t('select.formatInputTooLong')}" 
    "#{I18n.t('select.formatSelectionTooBig')}" 
    "#{I18n.t('select.formatLoadMore')}" 
    "#{I18n.t('select.formatSearching')}" 
    ] 

我認爲做到這一點,這樣我就可以有機會獲得的I18n庫。如果我嘗試訪問.js.coffee裏面的I18n庫,它失敗

現在,在

mycode.js.coffee

@mensajes_select2 = (txt) -> 
    $.extend $.fn.select2.defaults, 
    formatNoMatches: -> 
     txt[0] 
    formatInputTooShort: (input, min) -> 
     txt[1] 
    formatInputTooLong: (input, max) -> 
     txt[2] 
    formatSelectionTooBig: (limit) -> 
     txt[3] 
    formatLoadMore: (pageNumber) -> 
     txt[4] 
    formatSearching: -> 
     txt[6]