/ / rails 3は、レンダリングする代わりにhtmlタグをレンダリングする代わりにスクリーンに表示します - ruby​​-on-rails、activescaffold、ruby-on-rails-3

rails 3はhtmlタグをレンダリングする代わりにスクリーンに表示しています - ruby​​-on-rails、activescaffold、ruby-on-rails-3

私はvhochsteinのactive_scaffoldのフォークを使用しています。これはいくつかの小さなバグを除いて、レール3でかなりうまく動いています。 http://github.com/vhochstein/active_scaffold.

rails 2.3では、次のコードはリンクを無効にします。

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

しかし、Rails 3では、次の写真のようにエスケープされたhtmlタグが代わりに印刷されます。

ruby-on-rails / rails-3-is-printing-html-tags-to-screen-of-rendering-them.png

どのようにしてこのreturn文の内容をレール3のようにレンダリングすることができますか?

上のコードは、 list_column_helpers.rb ベンダー/プラグイン/ active_scaffold / helpers /

更新:

Floatlessは、これを .html_safe コードに

私はそれ以降、active_Scaffoldのアクションリンクを無効にすることに対応できるコードが2ビット以上あるため、フォローアップの変更も必要になることを発見しました。

/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 -%>

とにかく、浮気のおかげでうまくいけば、hochsteinはこのものを使うことができます。

回答:

回答№1の11

これを試して:

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