我是Ruby on Rails的新手,我试图从数据库中的某些字段中提取信息,并将它们用作样式的方法。
例如,我的“学生”中有一个身高和宽度字段。数据库。我希望提取高度字段内容和宽度字段内容作为我的CSS文件的参数,以分别设置div标签的高度和宽度。
我在这方面遇到了很多麻烦。我已将视图index.html.erb中的样式表链接为:
opkg install bash
Installing bash (4.3.39-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/packages/bash_4.3.39-1_ar71xx.ipk.
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for bash:
* libc * libc * libc *
* opkg_install_cmd: Cannot install package bash.
位于assets / stylesheets / students.scss
下我不知道该怎么办。
答案 0 :(得分:4)
如果样式是数据库驱动的,则不应依赖于在部署期间生成静态样式表的sprockets。
一个简单的解决方案是使用ERB构建css内容。
<style>
.students-container {
height: "<%= @height.to_i %>px",
width: "<%= @width.to_i %>px"
}
</style>
您可以将样式节点提取为部分节点,并在多个模板中重复使用它。
答案 1 :(得分:1)
似乎内联样式在这里可以正常工作。在您的ERB中,在您的学生div中,只需:
func scrollRowToVisible(row: Int, animated: Bool) {
if animated {
guard let clipView = superview as? NSClipView,
let scrollView = clipView.superview as? NSScrollView else {
assertionFailure("Unexpected NSTableView view hiearchy")
return
}
let rowRect = rect(ofRow: row)
var scrollOrigin = rowRect.origin
let tableHalfHeight = clipView.frame.height * 0.5
let rowRectHalfHeight = rowRect.height * 0.5
scrollOrigin.y = (scrollOrigin.y - tableHalfHeight) + rowRectHalfHeight
if scrollView.responds(to: #selector(NSScrollView.flashScrollers)) {
scrollView.flashScrollers()
}
clipView.animator().setBoundsOrigin(scrollOrigin)
} else {
scrollRowToVisible(row)
}
}
要么是这个,要么先为每个学生生成一个独特的CSS课程,然后在每个div中使用它。