管理员更改主题

时间:2013-05-20 07:24:29

标签: css ruby-on-rails-3 themes onchange html-select

我正在制作一个管理员可以更改主题的网络应用程序。所以我有2个css文件,style.css和style2.css。 在我的application_helper中我有

def set_themes(themes)
  @themes = themes
end
在application_controller中的

我有

helper_method :themes

我把它放在application.html.erb

<%= stylesheet_link_tag set_themes %>

在Admin index.html中,我写了一个select_tag,如下所示:

Choose themes: <%= select_tag(:themes, options_for_select({"Black" => "compiled/styles", "Green" => "compiled/styles2"}), :onchange => 'set_themes(this.options[this.selectedIndex].value)') %>

我得到ArgumentError。我知道问题是我如何使用onchange,因为当我从application_helper手动更改时,它可以工作。但我不知道如何通过单击select_tag从application_helper调用methode。

任何人都可以帮助我吗?谢谢你: - )

1 个答案:

答案 0 :(得分:1)

您对set_themes方法的定义要求帮助方法只传递一个参数,但在此行中:

<%= stylesheet_link_tag set_themes %>

您似乎在没有任何参数的情况下调用它(即,它等同于调用set_themes())。您应该将上面一行中的set_themes调用更改为具有正确参数或直接实例变量等的其他内容。