在模型或控制器中运行ruby文件

时间:2012-11-14 18:28:34

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我有以下文件,我创建了一个包含所有现有动态CSS菜单的文件。但这仅在重新启动服务器时运行。怎么可以在我的模型或我的控制器上运行它?

菜单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 %>

1 个答案:

答案 0 :(得分:0)

如果您想要做的是生成一些动态CSS,为什么不使用普通的erb部分,然后使用content_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进行渲染。

但这感觉就像一个错误的&#34;无论如何解决问题...