1

我正在制作一个管理员可以更改主题的网络应用程序。所以我有 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 调用方法。

谁能帮我?谢谢你 :-)

4

1 回答 1

1

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

<%= stylesheet_link_tag set_themes %>

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

于 2013-05-20T07:35:44.127 回答