Должен ли я использовать файлы .erb или .rhtml для приложения Rails, в котором вся логика контроллера существует в представлениях? - PullRequest
3 голосов
/ 04 мая 2009

Я только начинаю изучать Rails. Я создал пустое приложение Rails. И вместо того, чтобы писать контроллер, я хочу поместить всю мою логику контроллера в свои представления, а не в отдельные классы контроллера.

Для этого мне следует использовать файлы .erb или .rhtml и в чем разница?

Ответы [ 7 ]

32 голосов
/ 04 мая 2009

Прежде всего, это практически одно и то же, но вы должны использовать новый стандартный формат имен .html.erb

Во-вторых, прекратите то, что вы делаете, и пересмотрите все !!!!!

Смысл MVC в том, чтобы отделить логику от дисплея и наоборот. Большая часть вашей логики должна быть в ваших моделях, и контроллер должен просто облегчать захват этой логики и передачу ее вашим представлениям.

Вы не должны делать в своих представлениях ничего, кроме отображения данных.

11 голосов
/ 05 мая 2009

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

Стоит ли использовать старый ботинок или стеклянную бутылку?

В вашем случае я бы взял стеклянную бутылку .

4 голосов
/ 04 мая 2009

В новых рельсах 3.0 .rhtml файлы не будут поддерживаться. .html.erb - новый стандарт.

Я понимаю, что у вас небольшое приложение, и стандарты к вам не относятся, но в этом и заключается весь смысл MVC. Логика должна идти в контроллер / модель, и представление строго для представления.

3 голосов
/ 05 мая 2009

Простой ответ на ваш вопрос - нет. Нет, вы не должны помещать логику контроллера в представления. Если вам не нужны контроллеры, то вам, вероятно, не нужны рельсы. Я знаю, что это не тот ответ, который вы хотите, но, честно говоря, вы не правы, чисты и просты. Если вы хотите изучить фреймворк Rails, то то, что вам здесь сказали, является правильным и сделать это по-своему будет просто означать, что вы либо отучитесь от того, что вы только что сделали, либо от плохого разработчика.

Так оно и есть, остальное теперь за вами.

1 голос
/ 25 августа 2011

Присоединение к MVC - это способ приступить к созданию приложения. Если вы не уверены, зачем нужен контроллер, тогда проведите исследование. я имею сталкивался с поддерживающим кодом, в котором скрипты встроены в уровень представления. Фарсово начинать любые инженерные работы без тщательного понимания правильной, проверенной временем методологии. Это все равно что пытаться построить дом без использования фундамента или плана.

1 голос
/ 04 мая 2009

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

Я создал пустое приложение Rails. И вместо того, чтобы писать контроллер, я хочу поместить всю мою логику контроллера в свои представления, а не в отдельные классы контроллера.

Просто из любопытства, какую логику вы рассматриваете в своих взглядах? Если это логика представления, то это одно, но если это бизнес-правила, загрузка данных из базы данных, XML-файла, веб-службы / отдыха на основе, то вы нарушаете основные принципы рельсов. Вы когда-нибудь слышали о ASP (Classic Active Server Pages)? Фреймворки развились за пределы этого, чтобы преодолеть недостатки и подводные камни, такие как ASP, чтобы позволить вам не смешивать презентацию и код. Если вы соберете все вместе, как вы будете тестировать свой код? Еще один ключевой принцип рельсов, поэтому он встроен в сам фреймворк в отличие от других веб-фреймворков.

Я хочу узнать, как использовать "стандартную" среду Ruby

В своих ответах вы постоянно упоминаете, что хотите изучить стандартную среду Ruby? Если это так, почему бы вам не использовать irb? Rails не является частью стандартной среды Ruby. На самом деле вы, вероятно, узнаете намного больше о Ruby, используя irb, чем Rails. После того, как вы познакомитесь с Ruby, возьмите рельсы.

Я согласен с другими, и если вы собираетесь потратить время на изучение фреймворка, то изучите его правильно и, как задумал создатель, в противном случае вы упускаете суть и не поймете, почему rails такой хороший веб рамки для начала. То, что вы надеетесь достичь, может быть сделано с помощью ряда веб-технологий: ASP, ASP.Net, PHP, JSP, Perl, но вы выбираете изучение Ruby и rails, поэтому не делайте этого так же, как в любой из другие веб-технологии.

0 голосов
/ 20 мая 2012

Ничего, правда. Это просто смена философии между Rails 1 и Rails 2. До Rails 2 у вас были file.rhtml, file.rxml и file.rjs. В Rails это изменилось на file.content_type.template_engine. Таким образом, для файла file.html.erb тип содержимого html, а механизм шаблонов - ERb. rxml теперь xml.builder и теперь rjs должен (в основном) быть js.rjs

В новых рельсах 3.0 .rhtml файлы не будут поддерживаться. .html.erb - новый стандарт.

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