Как сделать пользовательский контент из CMS в Rails - PullRequest
0 голосов
/ 29 октября 2010

Я пытаюсь создать CMS в Rails с нуля, и для показа пользовательских страниц у меня возникают проблемы с определением, как именно это сделать.

То, как я это делаю прямо сейчас, яиметь контроллер с именем «content» с одним действием под названием «show».В rout.rb у меня есть правило, которое передает любое имя после имени веб-сайта контроллеру контента, показывает действие с именем параметра.

Например, www.mysite.com/about_us будет направлять на

:controller => 'content', :action => 'show', :page => 'about_us'

Внутри контроллера контента, я нахожу в модели Страницы, чтобы найти именованную страницу:

@markup = Page.find_by_name(params[:page])

А затем в представлении show.html.erb я использую raw помощникдля отображения содержимого:

<%= raw @markup.text %>

Не нарушает ли этот метод что-то, что я должен делать в Rails?Или это правильное решение?

1 Ответ

0 голосов
/ 31 октября 2010

В итоге я воспользовался помощником sanitize, по умолчанию он удаляет теги <script>, что, как я понимаю, по сути то, что вам нужно для предотвращения XSS. Для тех, кто нашел это с помощью поиска, единственный код, который отличается от того, что я описал выше, это то, что в представлении вы меняете на:

<%= sanitize @markup.text %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...