Я хочу, чтобы обновить значения, взятые из одной формы в двух различных моделей, в то же время, я написал следующий код, чтобы сделать это: -Rails: обновление атрибутов Mutiple множественной модели одновременно
if @mess.update_attributes!(:mess_name => params[:mess_name_update], :mess_capacity => params[:mess_capacity_update]) && @mess_price.update_attributes!(:breakfast_charge => params[:mess_breakfast_charge_update], :lunch_charge => params[:mess_lunch_charge_update], :dinner_charge => params[:mess_dinner_charge_update], :monthly_charge => params[:mess_monthly_charge_update], :semesterly_charge => params[:mess_semesterly_charge_update], :start_date => params[:start_date_update], :end_date => params[:end_date_update], :rebate => params[:rebate_update])
flash[:success] = "Mess Details Updated Successfully!!"
else
flash[:error] = "Some Error! Please Try Again!"
end
Но Приведенный выше код дает следующее сообщение об ошибке
ActiveRecord :: RecordInvalid
не удалось выполнить проверку: Дата начала не может быть пустым
Ниже приводится две схемы я использую для @mess его MessType модели и @mess_price его MessPrice модель:
MessType
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| mess_id | int(11) | NO | PRI | NULL | auto_increment |
| mess_name | varchar(255) | NO | | NULL | |
| mess_capacity | int(11) | NO | | NULL | |
| start_date | date | No | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
MessPrice
+-------------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| breakfast_charge | float | YES | | NULL | |
| lunch_charge | float | YES | | NULL | |
| dinner_charge | float | YES | | NULL | |
| monthly_charge | float | YES | | NULL | |
| semesterly_charge | float | YES | | NULL | |
| rebate | float | YES | | NULL | |
| start_date | date | YES | | NULL | |
| end_date | date | YES | | NULL | |
| mess_id | int(11) | YES | MUL | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+-------------------+----------+------+-----+---------+----------------+
'update_attributes!' Не должны изменять значения в параметрах. Вы проверяли значения «params» с помощью инструкции debug до вашего «if», чтобы узнать, было ли значение «nil» начато? – lurker
@mbratch yes Я проверил значения 'params', они возвращают значения, а не' null' – hiteshtr
Это не должно быть проблемой. Вы пытались изменить настройки модели? сначала обновите вторую модель, а затем первую модель. Вы не должны видеть никакой разницы. –