我正在使用 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/