Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS文件中的Rails变量_Css_Ruby On Rails_Ruby_Activerecord_Asset Pipeline - Fatal编程技术网

CSS文件中的Rails变量

CSS文件中的Rails变量,css,ruby-on-rails,ruby,activerecord,asset-pipeline,Css,Ruby On Rails,Ruby,Activerecord,Asset Pipeline,我有CSS文件,需要由用户嵌入。现在,为了让用户根据自己的意愿定制CSS文件(主要更改颜色和字体大小),我必须将该信息存储在数据库文件中,将该信息附加到特定的CSS文件中,然后让该用户能够嵌入它 我将获得我希望更改的用户的id。所以存储的色码基本上是从 User.find(params[:id]).main_color # This would return => #fffff 这就是我的嵌入代码现在的样子 <link href="link.com/initial.css" t

我有CSS文件,需要由用户嵌入。现在,为了让用户根据自己的意愿定制CSS文件(主要更改颜色和字体大小),我必须将该信息存储在数据库文件中,将该信息附加到特定的CSS文件中,然后让该用户能够嵌入它

我将获得我希望更改的用户的id。所以存储的色码基本上是从

User.find(params[:id]).main_color 
# This would return => #fffff 
这就是我的嵌入代码现在的样子

<link href="link.com/initial.css" type="text/css" rel="stylesheet" /> 
<script type="text/javascript" data-user="18" src="link.com/some_file.js" />

这里data user是修改CSS文件的用户的id。(正在使用javascript文件嵌入IFrame)

我应该如何修改我的嵌入代码并从数据库中获取自定义变量,以使CSS cstomizable符合用户的需要

提前谢谢


另外,我曾想过在视图(.html.erb文件)中重写CSS并使用!重要的是,还有用户选择的正确颜色代码,但这种方法并不十分有效。

我认为最好的方法是将脚本文件保存在服务器端,以便您可以根据用户数据库选项轻松修改脚本

例如:

在routs.rb中放置新路线

post '/users/modify_style', :to => 'users#modify_style', :as => modify_style
然后允许路由通过JavaScript文件响应用户,例如,如果用户需要使用按钮或链接更改HTML模板的主颜色;因此,模板中的表单按钮可能如下所示:

<%= button_to 'apply style', modify_style_path, :data => {:user_id => current_user.id}, :remote => true %> 
在js文件中:

$('#some_element_id_to_change_color_for').css('color', '<%= @main_color %>')
$('some#u element_id_to_change_color_for').css('color','')

或者,您可以将
modify_style
操作代码直接添加到原始操作中,一旦页面加载,该操作会将页面加载到appy用户样式中。

我建议您在erb文件中直接使用它,类似于

my.html.erb

<html>
<!-- my html -- >
</html>

<style>
 <%= my_css.html_safe %>
</style>

$('#some_element_id_to_change_color_for').css('color', '<%= @main_color %>')
<html>
<!-- my html -- >
</html>

<style>
 <%= my_css.html_safe %>
</style>