-2

Когда я пишу класс контроллера, можно использовать такие методы, как:Rails, как работает ApplicationController

@article.update(article_params) 

Метод update приходит из класса ActiveRecord::Base: http://api.rubyonrails.org/v2.3/classes/ActiveRecord/Base.html#M001966

Мои вопросы:

  1. Как использовать метод update из класса контроллера, который не находится в herit от ActiveRecord::Base? Похоже, что ApplicationController наследуется только от ActionController::Base

  2. Есть ли у вас какие-либо ресурсы для ознакомления?

Спасибо за помощь, Приветствия B

+5

микшерных яблоки и груши, и этот вопрос не имеет смысла. «ActiveRecord :: Base» - это модели, «ActionController :: Base» - это контроллеры. '@ article.update (article_params)' вызывает '.update' в экземпляре модели и не имеет ничего общего с' ApplicationController'. Вы можете начать с чтения: http://guides.rubyonrails.org/getting_started.html – max

+1

Чтобы быть честным, 'ActiveRecord :: Base' используется только для моделей в базе данных. Существует много обширной документации о том, как работают «ActionController» и «ActiveRecord». Я также думаю, что вопрос не должен быть задан **, потому что многие люди продолжают задавать один и тот же вопрос снова и снова. что @max сказал, прочитайте документацию непосредственно из Rails. –

ответ

2

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

Я рекомендую проверить официальные руководства Rails. Я думаю, что некоторые из лучших письменных документов в отрасли:

http://guides.rubyonrails.org/

+0

Привет, MVC абсолютно ясен, смысл в том, как можно использовать update() -метод в контроллере, потому что это класс с областью. И я не смешиваю все, метод использует в контроллере -> (http://guides.rubyonrails.org/action_controller_overview.html) .... Мой вопрос в том, как он работает внутри рельсов. как можно использовать метод в контроллере, откуда это происходит. – DeveloperB

+0

Вы можете сделать что-то вроде 'MyModel.where (id: params [: id]). Update (name:" hello ")' в вашем методе контроллера. Вы создаете метод контроллера, если этот метод контроллера делегирует класс модели –