これを行う関数があります:
def blank_to_negative(value)
value.is_number? ? value : -1
end
渡された値が数値でない場合、値は -1 に変換されます。
この機能は主に特定のモデル向けに作成しましたが、この機能の適用範囲は明らかに特定のモデルを超えて広がる可能性があるため、特定のモデルでこの機能を定義することは適切ではないようです。ほぼ確実に、他のモデルやビューでこの関数が必要になるでしょう。
この関数を定義し、どこでも、特にモデルで使用するための最も「Rails Way」な方法は何ですか?
で定義しようとしましたApplicationHelper
が、うまくいきませんでした:
class UserSkill < ActiveRecord::Base
include ApplicationHelper
belongs_to :user
belongs_to :skill
def self.splice_levels(current_proficiency_levels, interest_levels)
Skill.all.reject { |skill| !current_proficiency_levels[skill.id.to_s].is_number? and !interest_levels[skill.id.to_s].is_number? }.collect { |skill| {
:skill_id => skill.id,
:current_proficiency_level => blank_to_negative(current_proficiency_levels[skill.id.to_s]),
:interest_level => blank_to_negative(interest_levels[skill.id.to_s]) }}
end
end
それは私に言った
未定義のメソッド `blank_to_negative' for #
とにかく、あなたがそのようなことを「決して」することになっていないと読んだことがあるので、ちょっと混乱しています。