2013-05-18 109 views
0

在我的應用程序中,我需要檢查是否某些spanid="transaction_sign"有一個negative類,如果是 - 將「減號」添加到數字,哪個用戶已輸入一個字段並將其保存爲否定形式到數據庫。「hasClass」同義詞在欄杆

事實上,如果使用jQuery和Rails在一起,我需要這樣做:

def add_sign_to_transaction 
    if $('#transaction_sign').hasClass('negative') { 
     @transaction.amount *= -1 
    }; 
end 

但是,當然在我transaction_controller.rb文件,在這裏我需要把這個defbefore_filter我不能做。

有沒有辦法檢查軌道上的頁面上的CSS?或者我可能需要一些寶石?

+0

你的控制器爲什麼要知道你的視圖的CSS類的一切? –

+0

我找到了解決方案,它更適合我的應用程序。我添加了負數的第二列,並通過jQuery'click'事件更改字段(正數 - 負數)。所以,現在不需要改變標誌。但我仍然不明白如何告訴控制器從視圖中改變標誌。 –

回答

0

表單應派任:

  1. 首先轉化數據,或
  2. 足夠的額外數據做在服務器端的任何轉換。

視圖層表示是適當模型的易碎替代品。

技術回答你的問題是否定的,除非視圖層只被服務器端代碼而不是JS改變。如果客戶改變風格,那麼你應該發送正確的數據或標誌。當然,該標誌可以是設置爲表單元素樣式的隱藏字段,也可以是由給定樣式的存在觸發的布爾值。國際海事組織這是錯誤的方法:發送一個負數。

0

你應該真的在你的JS文件中做這件事。找到範圍,然後添加到您的計數器,並提交ajax調用以將負數保存到您的數據庫。