我正在制作一个管理员可以更改主题的网络应用程序。所以我有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。
任何人都可以帮助我吗?谢谢你: - )
答案 0 :(得分:1)
您对set_themes
方法的定义要求帮助方法只传递一个参数,但在此行中:
<%= stylesheet_link_tag set_themes %>
您似乎在没有任何参数的情况下调用它(即,它等同于调用set_themes()
)。您应该将上面一行中的set_themes
调用更改为具有正确参数或直接实例变量等的其他内容。