rails中用户确定的CSS和路径

rails中用户确定的CSS和路径,css,ruby-on-rails,asset-pipeline,Css,Ruby On Rails,Asset Pipeline,我正在构建一个Rails 3.2应用程序,它具有一些功能,用户可以将不同的主题(即CSS文件)应用到他们的网站。我有一个带有主题名和文件名的主题模型——非常简单 我的问题是,这些css文件应该放在哪里?它们应该在/assets文件夹中,还是在/public文件夹中?据我所知,它们无法添加到管道中,因为我不知道用户将选择哪个css文件,因此无法预编译 如果我使用类似于: stylesheet_link_tag "plain.css" 当然,它会生成指向/assets/plain.css的路径,该

我正在构建一个Rails 3.2应用程序,它具有一些功能,用户可以将不同的主题(即CSS文件)应用到他们的网站。我有一个带有主题名和文件名的主题模型——非常简单

我的问题是,这些css文件应该放在哪里?它们应该在/assets文件夹中,还是在/public文件夹中?据我所知,它们无法添加到管道中,因为我不知道用户将选择哪个css文件,因此无法预编译

如果我使用类似于:

stylesheet_link_tag "plain.css"
当然,它会生成指向/assets/plain.css的路径,该路径不是有效路径

我可以将它放在/public中,并使用以下内容生成路径
“public/themes/”+theme.file


但这种感觉有些不对劲。有什么架构建议吗?

如果所有主题都是用户选择的简单的预先存在的样式表,我会同意

/app/assets/stylesheets/themes/plain.css
然后在视图中使用此选项:

stylesheet_link_tag "themes/plain"

# or e.g. using the model

stylesheet_link_tag "themes/#{current_user.theme.file_name}“

你也可以考虑创建一个<代码>主题样式表标签> /COD>帮助器,它以更干净的方式为你做这件事。

谢谢,但是这似乎不起作用。尝试访问此路径时出现以下错误:“/app/assets/stylesheets/themes/green.css”没有路由匹配[get]”/app/assets/stylesheets/themes/green.css”听起来像是将整个路径用于链接标记。请确保调用的是
stylesheet\u link\u tag“themes/green”“
但是我们正在将文件放在
/app/assets/stylesheets/themes/green.css
中。谢谢-看起来问题在于
当前用户.theme.file\u name
.css
扩展名一起存储
stylesheet\u link\u标记
确实需要(接受?)这个.Hmm-划掉它-不管.css扩展是否存在,stylesheet\u link\u标记都可以处理它-我一定是做错了什么。不管怎样,现在都可以了,谢谢你!