Как вы решаете, что строку кода нужно перенести из контроллера в модель?Вопросы о Fat-Model, практике Skinny-Controller
Я сделал некоторые исследования уже об этом лучшей практике и здесь лучшие объяснения до сих пор, но я надеюсь, что вы, ребята, можете расширить это хорошо, потому что мой мозг новичку не может в полной мере понять это :)
- любая логика неответ связанных должны идти в модели
- вам нужно только параметры запроса процесса и инициализировать слой модели в контроллерах должны быть реализованы в модели слоя
- Бизнес-логика
EDIT: Скажем, я хочу, чтобы реорганизовать мой контроллер ниже от:
class TaskController < ApplicationController
def index
@tasks = Task.find_all_by_complete(:false, :order => "created_at DESC")
end
end
в
class TaskController < ApplicationController
def index
@tasks = Task.find_incomplete
end
end
Какой из этих 2-х блоков кода являются правильными?
class Task < ActiveRecord::Base
def self.find_incomplete
find_all_by_complete(:false, :order => "created_at DESC")
end
end
или
class Task < ActiveRecord::Base
def find_incomplete
self.find_all_by_complete(:false, :order => "created_at DESC")
end
end
EDIT2: Если я хочу, чтобы реорганизовать мой контроллер ниже от:
@average_review = @surf_school.surf_school_reviews.average(:rating).round(2)
в
@average_review = @surf_school.average_review
мой код внутри модели должно быть:
def average_review
self.surf_school_reviews.average(:rating).round(2)
end
см. Мой EDIT – boholdyjeramae
Я редактировал свое сообщение выше. – meshpi
Итак, первый и второй блоки оба правильные? – boholdyjeramae