rails 表单助手 color_field 没有通过提取值
rails form helper color_field not pulling value through
我有一个名为 class 的 'Color',它继承自 String,它需要 returns 一个彩色十六进制字符串。
我有以下型号
class Category < ActiveRecord::Base
def color
Color.new(self[:color])
end
end
我对类别编辑表单有以下视图:
<%= form_for @category, url: @category do |f| %>
<%= f.label :color %>:
<%= f.color_field :color %>
<% end %>
无论我为类别设置 'color' 什么,color_field 总是 returns 黑色。我猜 nil 正在传递给该字段,而 black 只是默认值?
奇怪的是,如果我将 color_field 更改为 text_field,十六进制字符串会按预期通过。如果我调用@category.color、@category::color、@category[:color] 或@category.send :color 我也会收到预期的十六进制字符串,所以我无法计算出黑色 (或无)来自。
这是一个例子
f.color_field :color
# => <input id="color" name="color" type="color" value="#000000" />
所以默认情况下需要 value="#000000"
来覆盖它需要显式传递
<%= f.color_field :color, value: @category.color%>
参考:-
http://railsdoc.com/references/color_field
*如有错误请指正***
我感觉你在这里返回的不是字符串,而是一个对象
def color
Color.new(self[:color]) //returns object
end
也许你可以在 Color class(即 returns 十六进制)上定义一个 to_s 方法,然后执行
def color
Color.new(self[:color].to_s) //returns hex
end
我有一个名为 class 的 'Color',它继承自 String,它需要 returns 一个彩色十六进制字符串。
我有以下型号
class Category < ActiveRecord::Base
def color
Color.new(self[:color])
end
end
我对类别编辑表单有以下视图:
<%= form_for @category, url: @category do |f| %>
<%= f.label :color %>:
<%= f.color_field :color %>
<% end %>
无论我为类别设置 'color' 什么,color_field 总是 returns 黑色。我猜 nil 正在传递给该字段,而 black 只是默认值?
奇怪的是,如果我将 color_field 更改为 text_field,十六进制字符串会按预期通过。如果我调用@category.color、@category::color、@category[:color] 或@category.send :color 我也会收到预期的十六进制字符串,所以我无法计算出黑色 (或无)来自。
这是一个例子
f.color_field :color
# => <input id="color" name="color" type="color" value="#000000" />
所以默认情况下需要 value="#000000"
来覆盖它需要显式传递
<%= f.color_field :color, value: @category.color%>
参考:- http://railsdoc.com/references/color_field
*如有错误请指正***
我感觉你在这里返回的不是字符串,而是一个对象
def color
Color.new(self[:color]) //returns object
end
也许你可以在 Color class(即 returns 十六进制)上定义一个 to_s 方法,然后执行
def color
Color.new(self[:color].to_s) //returns hex
end