[Rails] モデル間の関連情報を取得し処理を分岐する
パラメーターで渡されたテーブル名を元に、モデル間の関連情報を取得。
def sample_method
table_name = params_for_sample_method.delete("table_name")
if Application.reflect_on_association("#{table_name}").is_a?(ActiveRecord::Reflection::HasOneReflection)
application.send("build_#{table_name.singularize}(params_for_sample_method)")
else
application.send(table_name).build(params_for_sample_method)
end
end
参考サイト
・モデル間のアソシエーションの情報を取得する方法 ・is_a?, kind_of? (Object) ・【rails】文字列を単数形や複数形にする方法 ・Railsモデルの関連付けで、buildを使うときのメソッド名