Ruby 在 Rails 根据数据库更改 CSS 中的背景颜色
Ruby on Rails change background colour in CSS according to database
在我的 Ruby on Rails 应用程序中,我试图让用户选择他们的颜色并将其作为网站背景。
在我的模式中我有这个偏好 table:
create_table "perferences", force: :cascade do |t|
t.integer "user_id"
t.integer "category_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "colour"
end
CSS 背景色在下一行:
body{line-height:1;height:100%;width:100%;color:#B2BFCB;background:#002952;text-align:center;font-family:"Apercu Regular", Calibri, sans-serif;font-weight:normal;font-style:normal;margin:0;padding:0;}
但是我不确定如何根据数据库中的颜色更新颜色。
我已尝试遵循此 link:http://blog.hasmanythrough.com/2007/10/18/simpler-than-dirt-restful-dynamic-css
但是我得到了错误:undefined method formatted_colour_path for #<#<Class:0x6daa0a8>:0x6881b98>
在视图中:
在偏好控制器中:
def show
@colour = Perference.find_by(user_id: session[:user_id]).colour
respond_to do |format|
format.html
format.css
end
end
有人可以帮忙吗。我知道我需要从数据库中检索颜色,然后用它来更新 CSS,但我不知道该怎么做。
css 文件已修复 - 您不能将 ruby 代码放入其中。另一种方法是在 application.html.erb:
中做一些内联的事情
<body style="background-color:<%= current_user.preference.color">
</body>
这当然假设用户总是加载在"current_user"变量中(你可以使用条件来处理"not logged in"情况)。
如果您尝试更改正文背景颜色,请尝试以下操作:
<body style="background-color: <%= @colour %>">
</body>
但这会给你带来一些后果,你需要更深入:)
这样会更好
<body style="background-color: <%= @colour if @colour %>" >
</body>
或者写一个助手。
在我的 Ruby on Rails 应用程序中,我试图让用户选择他们的颜色并将其作为网站背景。
在我的模式中我有这个偏好 table:
create_table "perferences", force: :cascade do |t|
t.integer "user_id"
t.integer "category_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "colour"
end
CSS 背景色在下一行:
body{line-height:1;height:100%;width:100%;color:#B2BFCB;background:#002952;text-align:center;font-family:"Apercu Regular", Calibri, sans-serif;font-weight:normal;font-style:normal;margin:0;padding:0;}
但是我不确定如何根据数据库中的颜色更新颜色。
我已尝试遵循此 link:http://blog.hasmanythrough.com/2007/10/18/simpler-than-dirt-restful-dynamic-css
但是我得到了错误:undefined method formatted_colour_path for #<#<Class:0x6daa0a8>:0x6881b98>
在视图中:
在偏好控制器中:
def show
@colour = Perference.find_by(user_id: session[:user_id]).colour
respond_to do |format|
format.html
format.css
end
end
有人可以帮忙吗。我知道我需要从数据库中检索颜色,然后用它来更新 CSS,但我不知道该怎么做。
css 文件已修复 - 您不能将 ruby 代码放入其中。另一种方法是在 application.html.erb:
中做一些内联的事情 <body style="background-color:<%= current_user.preference.color">
</body>
这当然假设用户总是加载在"current_user"变量中(你可以使用条件来处理"not logged in"情况)。
如果您尝试更改正文背景颜色,请尝试以下操作:
<body style="background-color: <%= @colour %>">
</body>
但这会给你带来一些后果,你需要更深入:)
这样会更好
<body style="background-color: <%= @colour if @colour %>" >
</body>
或者写一个助手。