最善のアプローチは、JavaScriptを使用して、目的のスタイルで頭にスタイルタグを生成することだと思います。Jqueryはそれを行う簡単な方法を提供し、モデルの列にスタイルを格納できます。
このようなもの:
class User
attr_accesible :styles
view.erb
<script>
// Assume the @styles attr has something like "body { background-color: #567;}"
$('head').append($('<style>').html('<%= @user.styles %>'))
</script>
@stylesはモデルの別の列になるため、移行して追加する必要があります
rails g migration addstylestousers styles:string
あなたのform.erbで
<%= f.label :styles %>
<%= f.text_field :styles %>
body { background-color: red }
「このフィールドに追加して背景を赤くする」などのヒントをユーザーに提供する限り、ユーザーがcssスタイルをここに配置するのは簡単だと思います。
シリアル化については、これを考慮してください。
スタイルをネストする場合、スクリプトは次のようになります。
//Lets say that the user stored on @bgcolor and @fgcolor only css color codes, like '#222' or 'blue'
var bgc = '<%= @user.style.bgcolor %>'
var fgc = '<%= @user.style.fgcolor %>'
var style = 'body { background-color: ' + bgc + '; foreground-color: ' + fgc + ' }'
$('head').append($('<style>').html(style))
User has_one :style
この場合、関係が必要であることを忘れないでください。しかし、それをネストすることはあなた自身をより多くの問題に巻き込みます、私はそれがそれの価値があるとは全く思わない。