Rails контроллер когда нет модели ActiveRecord? - PullRequest
2 голосов
/ 30 марта 2010

Я пытаюсь создать веб-приложение rails, которое не использует фреймворк ActiveRecord, поскольку у меня нет серверной части реляционной базы данных.

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

Однако, когда дело доходит до создания записи, у меня возникают некоторые проблемы.

Проблема в том, что класс контроллера не ведет себя таким же образом, если класс модели не наследуется от ActiveRecord :: Base.

С точки зрения контроллера, в классической схеме модели активной записи, где модель наследуется от ActiveRecord :: Base, создание записи выглядит следующим образом:

  • controller.new: создание непостоянной записи с отображением формы ввода
  • controller.create : установить запись с помощью пользовательского ввода, постоянного хранилища,….

Однако в случае, когда модель не является ActiveRecord, мы получаем следующую последовательность:

  • controller.new
  • controller.update

Теперь, конечно, это немного странно, потому что мы пропускаем метод создания, так что это приведет к ошибке nil instance!

Я вполне уверен, что такое поведение продиктовано тем, что должно быть реализовано в модели, однако я не смог найти что (вероятно, потому что я абсолютный новичок с рельсами)

Так что, если у кого-то здесь есть несколько указателей на то, что я должен искать / реализовывать, чтобы разрешить эту ситуацию, и иметь одинаковое поведение в обоих случаях, я был бы очень благодарен.

Спасибо,

1 Ответ

7 голосов
/ 30 марта 2010

Пусть ваша пользовательская модель реализует метод MyModel#new_record? (метод экземпляра), и вы будете иметь желаемое поведение. Когда new_record? вернет true, он будет создан, а когда вернет false, он будет обновлен.

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