0

ルビーのキーと値のフィールドを使用してjquery関数をデータベースに保存していますが、すべて正常に機能しますが、値のパラメーターを分離するにはどうすればよいですか?

def update_background
  key = "#{current_user}.profile.background"
  settings = Settings.find_by_key(key) || Settings.new(key: key)
  settings.value = params[:bg_id], params[:color_id]

  respond_to do |format|
    format.json do
      if settings.save
        render text: "success"
      else
        render text: "failure"
      end
    end
  end
end

上記のコードは正常に機能しますが、問題は私のcssが正しくフォーマットされていないことです。コードは通常そのように表示されます

background:  url(../assets/stripes.png rgb(76, 72, 128))

私のヘルパーファイル。

def saved_background
  key = "#{current_user}.profile.background"
  settings = Settings.find_by_key(key)
   if settings
     "url(#{settings.value})"
  end
end

コードが次のようになるように、値の2つのパラメーターを分離するにはどうすればよいですか?

background: rgb(76, 72, 128) url(../assets/stripes.png)
4

1 に答える 1

1

基本的に、配列をに保存しsettings.value、それをすべて文字列内で使用しurlます。

設定を個別の値に分割するか、各要素を個別に使用します。

"url(#{settings.value[0]}) #{settings.value[1]}"

編集ああ、それはARフィールドなので、配列の文字列repとして保存されている可能性があります。チェックするのは簡単です、そしてあなたはすでに持っているべきです。

実際に必要な形式で保存する必要があります。

settings.value = "url(#{params[:bg_id]}) #{params[:color_id]}"

と:

def saved_background
  key = "#{current_user}.profile.background"
  settings = Settings.find_by_key(key)
  settings.value if settings
end
于 2012-04-10T21:49:15.747 に答える