私はコントローラからいくつかのロジックを切り離そうとしていますが、私が望むように動作させることはできません。その後、私は私のモデルにレール4:バリデーションを使用してモデルとコントローラを分離する
# WeighIn model
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
hashed_row = row.to_hash
# VALIDATE HERE
WeighIn.create hashed_row
end
end
が、エントリを作成する前にCSV解析機能を持っている
# Controller (WeighIn belongs_to User)
def bulk_upload_weigh_ins
import = WeighIn.import(params[:file])
redirect_to import_weigh_ins_path, notice: "Weigh Ins Imported Successfully!"
end
:私は、CSVファイルを取り、私のWeighIns
テーブルに各行を入力し、私のコントローラ内の機能を持っていますWeighInsテーブルでは、ハッシュの属性に対応するUserがあることを確認します。User.find_by(scale_id: hashed_row["scale_id"]) != nil
ここで、scale_id
は行の一部で、列はUser
テーブルにあります。
は、どのように私はこれを検証し、「scale_idためいいえユーザー:フー」がない私に指示便利なエラーを返すことができ
このような詳細な対応をいただき、ありがとうございます。これらの手順を確実に実行します。 –