2009-05-04 3 views
3

Я только начинаю изучать Rails. Я создал пустое приложение Rails. И вместо написания контроллера я хочу поместить всю свою логику контроллера в свои представления, а не в отдельные классы контроллера.Должен ли я использовать файлы .erb или .rhtml для приложения Rails, в котором все логики контроллера существуют в представлениях?

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

+7

Почему вы избегаете контроллеров? Если вы создаете новое приложение, зачем начинать с плохого дизайна (например, всей логики в представлениях)? – runako

+0

Это небольшое приложение. Он не нуждается в контроллерах. – Junas

+4

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

ответ

33

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

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

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

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

+0

Итак, вы говорите в терминах того, как они интерпретируются компилятором, erb и rhtml будут обрабатывать свой Ruby-код одинаково. – Junas

+0

Это небольшое приложение. Я не хочу тратить время на создание Контроллеров, если мне это не нужно. Кажется смешным настаивать на том, чтобы вы ВСЕГДА использовали контроллеры. – Junas

+1

Да, но новый «стандартный» способ сделать это в Rails заключается в использовании формата filename.html.erb. Кроме того, вы не теряете время с помощью контроллера. Вам все равно понадобится файл контроллера для доступа к просмотрам, поэтому добавьте туда код, который является стандартом, и сэкономить много головных болей по дороге. Почему это неправильно с самого начала? – cpjolicoeur

4

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

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

+1

Если вы так мертвы против контроллеров, и ваше приложение настолько мало, возможно, Rails - это не то, что вам нужно. Вы думали о других фреймворках, таких как Sinatra? – cpjolicoeur

+0

Я думал о микрофотограммах, но решил, что хочу научиться использовать «стандартную» структуру Ruby. Создатели Rails никогда не говорили, что вы не должны использовать Rails для небольших приложений. Они также не призывали кого-либо использовать Синатру вместо Rails. Я не верю в слепо придерживаться MVC при любых обстоятельствах. Я считаю, что я должен иметь возможность использовать Rails таким образом, который наиболее подходит моим потребностям. Спасибо за совет. – Junas

+0

хорошо, если вы хотите узнать, как использовать «стандартную» структуру Ruby Rails, тогда вы должны использовать концепции MVC, так как это основано на Rails. – cpjolicoeur

1

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

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

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

Я хочу, чтобы узнать, как использовать «стандартные» основы Ruby,

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

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

3

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

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

11

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

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

в вашем случае я бы пойти на glass bottle.

1

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

0

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

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

Смежные вопросы