私のRails 4.2.6/Ruby 2.2.4アプリケーションでは、文字列を生成するdbクエリメソッドがあります。例えば:gsubに引数として正規表現を書く!方法 - 困惑?
"Chest - pectoralis, Quads - quadriceps, Hamstrings - biceps femoris"
しかし、私が望む結果は次のとおりです。
"Chest, Quads, Hamstrings"
ドメインが生成された文字列は、異なる組み合わせの多くを持つことができることを意味21匹の筋肉群を、追跡します。しかし、文字列は常に同じパターン、つまり「共通の筋肉名 - 技術的な筋肉名」です。条件ロジックで
、私はこのように、GSUBメソッドに「文字列」引数を渡すことで、私が望む結果を得ることができます。
if @muscle_group_ids == [1, 13, 14]
@muscle_group_names = MuscleGroup.where(id: @muscle_group_ids).map { |n| n[:name]
}.join(', ').gsub!("Chest - pectoralis", "Chest").gsub!("Quads - quadriceps", "Quads").gsub!("Hamstrings - biceps femoris", "Hamstrings")
end
=> "Chest, Quads, Hamstrings"
そのアプローチは実行可能ではありません。退屈で脆い。生成された文字列からダッシュと技術的な名前を削除するには、より良い方法が必要です。私はこれをいかに最高に達成するかについて困惑しています。希望の結果を得るために正規表現を書くことは可能ですか?私がやろうとしていることを達成するために、より簡単で、より良い、よりクリーンなアプローチがありますか?ありがとう!
de、 'MuscleGroup.where(...)をしないでください。map {| n |あなたがこれを行うことができれば、Railsで 'n::name]}'を実行してください。 'MuscleGroup.where(...)。pluck(:name)' –