【问题标题】:Admin changes themes管理员更改主题
【发布时间】:2013-05-20 07:24:29
【问题描述】:

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

谁能帮帮我?谢谢你:-)

【问题讨论】:

  • 你能给出ArgumentError异常的完整回溯和文本吗?
  • 参数数量错误(0 代表 1)
  • 谢谢,请看下面的回答
  • 非常感谢您的快速回复 :-)

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


【解决方案1】:

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

<%= stylesheet_link_tag set_themes %>

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

【讨论】:

  • 所以我改成 可以,但是如果我在管理索引中更改主题,它并没有改变
  • 我对您的应用程序或您试图完成的工作以回答剩余问题的了解不够,可能值得单独提出一个问题来解决它。不过,我希望 ArgumentError 调用 set_themes 的问题得到解决,如果是,请标记为已接受和/或投票。
  • 问题是,我不认为辅助方法是从 select_tag 中调用的。我想,它现在可以工作了,因为我放了@themes? @themes:application.html 上的“编译/样式”。
  • 对,这就是导致 ArgumentError 听起来像的行
猜你喜欢
  • 1970-01-01
  • 2021-07-16
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 2014-02-18
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多