2016-11-29 10 views
1

Я работаю над проектом ruby ​​on rails, и у меня есть действительно простые сомнения, в представлении у меня есть что-то вроде этого Food.all, должен ли я выполнять этот запрос внутри контроллера и назначать его переменным экземпляра или он в порядке если я поставлю эту строку внутри представления.Хорошо, если я выполняю запрос в представлении?

Каковы плюсы и минусы?

Должен сказать, что я ничего не делаю с этой информацией.

Food.all его фактически выбор на вид.

Спасибо.

ответ

0

Вид должен представлять только данные. Определенно лучше назначить его переменной в контроллере и использовать оттуда.

См.: How MVC works. В общем виде должен взаимодействовать с контроллером и контроллером с моделью.

+0

Если я использую вспомогательный метод, называемый, например: «продукты», вы бы сказали, что это нормально? –

+0

Я бы сказал, что это намного лучше из-за гибкости. Если вы используете помощник, код будет повторно использоваться повторно. Скажем, когда вы в будущем будете разбивать страницы на паузы, легче будет изменить несколько мест сразу. –

1

По умолчанию это является определение переменной в контроллере:

@foods = Food.all 

Хотя выполнения запросов в представлениях иногда приемлемо (на мой взгляд). Он имеет некоторые преимущества: кэширование было бы проще, и вы пишете меньше кода, особенно если у вас есть частичный код с этим кодом во многих местах вашего проекта. Но этот код менее гибкий, если вам нужно что-то более сложное, вам нужно будет переместить этот запрос. Так думайте и выбирайте с умом :)

+0

Я бы также не рекомендовал использовать помощники в этом случае. – lightalloy