Создание объектов модели из необработанных данных формы - требуется ли сопоставление полей один к одному? - PullRequest
1 голос
/ 25 мая 2009

Если я скажу это в контроллере:

@order = Order.new(params[:order])

Что требуется для того, чтобы это работало?

Требуется ли однозначное соответствие между всеми полями в params[:order] и моделью заказа?

Или в params[:order] может быть больше или меньше полей, чем требуется для создания Ордена?

Ответы [ 2 ]

1 голос
/ 25 мая 2009

params [: order] сам должен быть хешем, где каждый ключ является именем поля модели. Чтобы увидеть, как Rails преобразует имена полей формы в хэш params, напишите шаблон представления с помощником form_for и источником представления.

Может быть больше или меньше полей, да. Дополнительные поля будут игнорироваться. Меньшее количество полей просто не будет скопировано в объект экземпляра. Вам вообще ничего не нужно для создания экземпляра объекта ActiveRecord. (Действительность и сохранение объекта - это отдельная история - они вызывают проверки и механизм обратного вызова ActiveRecord.)

1 голос
/ 25 мая 2009

Полей действительно может быть меньше.

Убедитесь, что у вас есть все поля, необходимые для проверки!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...