0

次のファイルがあり、既存のものすべてで動的 CSS メニューを作成します。ただし、これはサーバーの再起動時にのみ実行されます。モデルまたはコントローラーでどのように実行できますか?

menu-icon.scss.erb

li [class^="icon-menu"], li [class*=" icon-menu"] {
  background-position: left center;
  background-repeat: no-repeat;
  height: 16px;
  vertical-align: middle;
  width: 22px;
}

<% Menu.all.each do |m| %>
  .icon-menu<%= m.id %> {
    background-image: url('/icons/<%= m.icon_file_name %>');
  }
<% end %>
4

1 に答える 1

0

動的な CSS を生成したい場合は、単純なバニラ パーシャルを使用してからerbcontent_for

<% content_for :menu do %>
  <% Menu.all.each do |m| %>
    .icon-menu<%= m.id %> {
      background-image: url('/icons/<%= m.icon_file_name %>');
    }
  <% end %>
<% end %>

次に、メニューを表示したいときはいつでも、 を使用yieldしてレンダリングします。

しかし、これはどちらにしても問題に対する「間違った」解決策のように感じます...

于 2012-11-15T02:23:47.903 に答える