使用:Ruby on Rails的(3.0.3)的Rails:模型和模型模板互動
我建立一個網站,一個可以執行不同的健康和飲食相關的計算。
每個計算持有不同輸入:
計算1 身高,體重,waist_measurement
計算2 重量,hip_measurement
計算3 hip_measurement,lifestyle_type (ST戒指),年齡,calory_intake
...等等。
我有(從誰知道RoR的朋友一個建議)創建的模型「計算」(意思爲模板),並且將被用作一個實例模型等
另一種模式「CalculationSheet」型號:計算(模板)保存數據,如: - TypeOfCalculation(「健康」,「生活方式」等) - SearchTags - isSpecial(一個布爾隔離某些特殊計算)
有儘可能多的計算對象作爲網站上有計算「類型」(如前面提到的3)
型號:CalculationSheet將只保存數據,如: - 結果(如BMI => 22)
在使用創建的網站上執行的計算的CalculationSheet將被創建。我不需要保存這些計算(實際上並不喜歡)。
使用CalculationSheet模型的最重要的原因是能夠驗證輸入 ...這是問題所在。
問題: 如何驗證輸入,從沒有保存每個輸入作爲屬性的模型。我不能讓一個屬性爲每個類型的輸入(字面上有100的),如身高,體重,life_style,腰,年齡等...
這是我的計劃,作爲現在:
class CalculationSheet < ActiveRecord::Base
belongs_to :calculation
# BMI
validates :height, :numericality => true, :if => :calculation_is_bmi?
validates :weight, :numericality => true, :if => :calculation_is_bmi?
def calculation_is_bmi?
# do something
end
end
哪(顯然)不起作用。它試圖驗證不存在的高度。
我想什麼做的是「只會驗證PARAMS [:高度]:NUMER ...等」,但它似乎並沒有工作,要麼...
我該如何解決這個問題?
@MichaelDurrant:我不明白你的意見。什麼? – rdvdijk
可以聊天聊天 –
我可以做這項工作,這是一個很好的舉措。然而,我的下一個重要的問題是**我怎樣才能製作這個通用的**所以我可以創建(並驗證):計算A的高度&:重量然後:計算B的腰圍:臀圍和重量:使用相同的型號? – Christoffer