rails 3 выводит html-теги на экран вместо их рендеринга - PullRequest
3 голосов
/ 01 августа 2010

Я использую форк vhochstein active_scaffold, который довольно хорошо работает на рейлах 3, за исключением нескольких небольших ошибок - http://github.com/vhochstein/active_scaffold.

В rails 2.3 следующий код отключает ссылку:

return "<a class='disabled'>#{text}</a>" unless authorized

Но в Rails 3 вместо этого выводятся экранированные html-теги, как на следующей фотографии:

https://internet-websites.s3.amazonaws.com/image2886.png

Как сделать так, чтобы содержимое этого оператора возврата отображалось так, как должно быть в rails 3?

Код выше, взят из файла list_column_helpers.rb в vendor / plugins / active_scaffold / helpers /

UPDATE:

Floatless исправил это, предложив добавить .html_safe к коду.

С тех пор я обнаружил, что следующие изменения также необходимо внести, поскольку существует более одного кода, который отвечает за отключение ссылок действий в active_Scaffold:

В /plugins/active_scaffold/frontends/default/views/_list_actions.html.erb изменить:

<%= record.authorized_for?(:crud_type => etc etc etc -%>

By making it use "raw"

i.e. 

<%= raw record.authorized_for?(:crud_type => etc etc etc -%>

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

1 Ответ

12 голосов
/ 01 августа 2010

Попробуйте это:

return "<a class='disabled'>#{text}</a>".html_safe unless authorized
...