Javascript 获取要在Rails变量和DB中使用的CSS属性

Javascript 获取要在Rails变量和DB中使用的CSS属性,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,当我点击多个名为scale-up的div时,我得到了css属性 但是,我想将导入的css属性存储在Rails变量和DB中 最后一件事是当我点击Css属性并让它们自动填充表单时,获取它们。此数据存储在名为“颜色”的列中 我尝试的代码是: $(document).ready(function() { $(".scale-up-center").click(function() { var color = $(".scale-up-center").css("b

当我点击多个名为scale-up的div时,我得到了css属性

但是,我想将导入的css属性存储在Rails变量和DB中

最后一件事是当我点击Css属性并让它们自动填充表单时,获取它们。此数据存储在名为“颜色”的列中

我尝试的代码是:

$(document).ready(function() {
        $(".scale-up-center").click(function() {
            var color = $(".scale-up-center").css("background-color");
            $(".first_scale").css("background-color", color);
        })
    })
我听说你可以使用ajax,但是当你看指南时,它与我想要的不同

主视图图像


你的方法有点脆弱。更改css颜色后,数据库中仍然存在旧的无效颜色。用户还可以操纵表单值以注入不需要的颜色。你的表达和逻辑没有一个清晰的分离

相反,在模型中为所有可用颜色定义一些常量。还要验证传入的值是否为有效颜色之一:

class Post < ActiveRecord::Base
  COLORS = ["none", "red", "green", "blue"]
  validates :color, inclusion: { in: COLORS }
end

您仍然可以添加一些javascript来为整个文本字段着色。

这真的是您想要实现的吗?要在数据库中保存一些颜色?页面上发生了什么?表单的用途是什么?我已经在posts控制器中添加了一个颜色列。当用户提交文本时,文本区域周围会有彩色的div。当我点击div时,我得到了div的背景色属性。这就是我现在可以做的。我想利用颜色列,在我最终提交时css属性存储在这个列中。好的。您希望用户为帖子选择颜色。这就是表格的目的吗?是的。当用户为帖子选择div的颜色时,我想将其保存到表单中,并在提交时保存。首先感谢您的回答。我想要的是,当我点击一个由几个圆圈组成的div区域(比如图片而不是单选按钮)时,获得该区域的css属性(背景色),然后在颜色表单中输入css属性并将其保存在颜色列中。我在帖子中添加了我的项目的主视图图像。你可以根据自己的喜好设置表单的样式。您可以像这些圆圈一样显示单选按钮。我可以更改单选按钮的外观吗?我试试看。感谢
<%= form_for @post do |f| %>
  <%= label :color %>
  <% Post::COLORS.each do |c| %>
    <div class="color-<%= c %>">
      <%= f.radio_button :color, c %> 
    </div>
  <% end %>

  <%= f.submit "Update" %>
<% end %>
form .color-red {
  background-color: #FF0000;
}

// ...