2014-12-02 4 views
0

Это действительно простой вопрос, но я смущен, когда должен использовать .new и .create в контроллере. Я предполагаю, что я действительно спрашиваю, что такое использование для .new и для каких целей используется .create? Благодарю., когда использовать новый и создать контроллер рельсов

ответ

0

Из ActiveRecord::Base документации:

создания (атрибуты = ноль) {| объект | ...}

Создает объект (или несколько объектов) и сохраняет его в базе данных, если проходят проверки. Получаемый объект возвращается, был ли объект успешно сохранен в базе данных или нет.

новый (attributes = nil) {| self if block_given? | ...}

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

So create создает новый объект, проверяет его и сохраняет в базе данных. И new создает только локальный объект, но не пытается проверить или сохранить его в БД.

https://stackoverflow.com/a/2472416/634120 От

+0

Спасибо, но я запутался, когда я когда-либо хотели бы использовать только новые? не могли бы вы привести пример? –

+0

, если вы не хотите немедленно сохранять, вы могли бы сделать что-то = Something.new, а затем 'if something.save ...' или, возможно, если у вас не будет свойств до более позднего времени, вы можете создать его, а затем установить больше свойства, например 'something.property = variable', а затем' save'. Просто зависит от того, что вы делаете. 'new' может пригодиться, но' create', вероятно, используется чаще. – martincarlin87

+0

безупречный информация. Благодаря! –

Смежные вопросы