ruby-on-rails - 用户在 Rails 中选择的 CSS 样式表

标签 ruby-on-rails css themes

我正在使用 Rails 开发一个站点,我希望用户能够将 CSS 样式表更改为浅色或深色主题。

我有这个在我看来,这样我就可以为样式表使用一个变量:

<%= stylesheet_link_tag @current_stylesheet %>

我试图通过在我的 View 中添加这样的链接来更改该变量:

<%= link_to 'Light Theme', :action => "set_light", :id => @projects %>

在我的 Controller 中调用这个函数:

class ProjectsController < ApplicationController
  def set_light
    @current_stylesheet = 'light'
  end
end

有没有办法让这样的事情发挥作用?现在它说缺少 projects/set_light 模板,但我不想制作新模板,我只想调用 set_light 来更改样式表并刷新当前页面。关于如何实现这一点的任何想法,或者可能是更好的方法?

最佳答案

为避免让 Rails 寻找“set_light”模板,您可以在您已有模板的操作末尾添加渲染调用。例如,只需添加

render :action => 'style_chooser' 

render :template => 'style_chooser'

其中 style_chooser 是您向用户展示或更改其样式的 View

关于ruby-on-rails - 用户在 Rails 中选择的 CSS 样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2215305/

相关文章:

javascript - ionic :unable to add image just above ionic tabs

joomla - 如何查找使用 Joomla 创建的网站使用的主题/模板

python - GTK3:听主题变化

android - 扩展样式和主题困惑

ruby-on-rails - Rails on ruby​​/jruby 性能

ruby-on-rails - RHEL 6 上的 Rail 服务器崩溃

ruby-on-rails - Ruby 为什么类实例变量是线程安全的

ruby-on-rails - rspec Controller 测试,获取多个参数

javascript - 通过 ID 获取元素不执行任何操作

html - 如何不在 div 元素之外显示链接?