Я использую Rails 4.2.3 и MySql 5.5.37. У меня есть модель, основанную на следующей таблице БД ...Как сохранить дату в моей модели?
mysql> desc user_objects;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | int(11) | YES | MUL | NULL | |
| object | varchar(255) | YES | | NULL | |
| day | date | YES | | NULL | |
| total | int(11) | YES | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+
В мой контроллер, я пытаюсь обрабатывать параметры, представленные в форме, и поэтому я использую это ...
def create
@current_user = User.find(session["user_id"])
…
puts user_object_params
@user_object = UserObject.new(user_object_params)
puts @user_object.object
puts @user_object.day
puts @user_object.total
Даже если первый «Puts» выводит строки «{» object »=>« 3 »,« day »=>« 02/28/2016 »,« total »=>« 77 »}», третий помещает строку («@user_object». день ") ничего не выводит. Что мне нужно сделать, чтобы получить мой объект даты, созданный в моей модели, с помощью «нового» вызова?
Редактировать: Это определение user_object в файле "./app/models/user_object.rb".
class UserObject < ActiveRecord::Base
validates :day, :presence => true
validates_numericality_of :total
validates :object, :presence => true
def self.find_total_by_user_object_month_and_year(user_id, object, month, year)
sum(:total, :conditions => ['user_id = ?', user_id, 'object = ?', object, 'month(day) = ?', month, 'year(day) = ?', year])
end
def self.find_total_by_user_object_and_year(user_id, object, year)
sum(:total, :conditions => ['user_id = ?', user_id, 'object = ?', object, 'year(day) = ?', year])
end
end
Изменить 2: В ответ на ответ дается, в том числе это в моем контроллере
puts user_object_params[:day]
@user_object.day = user_object_params[:day]
puts @user_object.day
Печатает «02/23/2016» для Teh первых «пут», но тогда ничего напечатано для второго «ставит».
do '@ user_object.object' и' @ user_object.total' имеют правильные значения? – jvillian
Что такое определение класса для UserObject и какова его ответственность? Это какой-то объект формы или что это? –
Если вы успешно сохранили дату в этом столбце, то все, что вы сделали здесь, должно работать. – tadman