以下のようなコントローラーメソッドがあります。ただし、 はschedule = params[:message][:schedule]
このような入力を受け取り、["","2"]
MySQL であるデータベースに文字列として格納されます。
Schedule.create(execution_time: scheduled_time, lists: "lists", message_id: @message.id, user_id: current_user.id)
保存された値がデータベースである場合、"--- \n- \"58\"\n- \"\"\n"
保存さSchedule.create(execution_time: scheduled_time, lists: "#{lists}", message_id: @message.id, user_id: current_user.id)
れた値がこのような"[\"34\", \"\"]"
場合でも、目的の値は["34", ""]
です。
コントローラーのメソッドは次のとおりです。
def create
@lists = current_user.lists.all
@message = Message.new(params[:message])
lists = params[:message][:lists]
schedule = params[:message][:schedule]
if @message.save
if schedule.blank?
MessageWorker.perform_async(@message.id, lists, current_user.id)
else
scheduled_time = DateTime.strptime(schedule,"%m/%d/%Y %H:%M %p %z").to_datetime.utc.strftime("%Y-%m-%d %H:%M:%S")
Schedule.create(execution_time: scheduled_time, lists: "#{lists}", message_id: @message.id, user_id: current_user.id)
end
redirect_to new_message_path, notice: 'Message was successfully added to the queue.'
else
render action: "new"
flash[:notice] = "Messages Not Sent"
end
格納された値にスラッシュが追加されているのはなぜですか? 前もって感謝します。