让我们说我有AR课程:
.........
store :skin_properties, accessors: [
:background_color,
:font_size,
:font_family,
:color
]
.........
以这种方式保存值:
{"background_color"=>"#f2f2f2", "font_size"=>"20px", "font_family"=>"Verdana", "color"=>"#000000"}
如何将其作为内联css插入 edit.haml 文件?
我尝试过类似的东西,但它没有用......
:sass
body
-@user.skin_properties.each_with_index do |(k,v)|
"#{k.gsub("_","-")}:#{v};"
答案 0 :(得分:1)
您可以尝试将哈希转换为某个标记的style
属性。
示例:更改
{"background_color"=>"#f2f2f2"}
到
style: {'background-color: #f2f2f2'}
答案 1 :(得分:1)
您正在默默运行ruby代码(即使用-
而不是=
)。
此外,请尝试使用dasherize
来解决此类情况:
:sass
body
= @user.skin_properties.map{|k,v| "#{k.dasherize}: #{v};" }.join
答案 2 :(得分:0)
我相信你需要这样做。我不使用haml所以你需要自己转换它:
:sass
body
<% @user.skin_properties.each_with_index do |(k,v)| %>
<%= "#{k.gsub("_","-")}:#{v};" %>
<% end %>
答案 3 :(得分:0)
:sass
body
=@user.skin_properties.map{|k,v| "#{k.gsub("_","-")}:#{v};" }.join
答案 4 :(得分:0)
谢谢大家,想出了类似的东西:
- css = @user.skin_properties.map {|k,v| "#{k.dasherize}: #{v};" }.join("\n")
%style== body { #{css} }