当我提交样式创建表单时,我想创建一个具有一些功能的新样式。这些功能是从多选框中选择的,该框选自数据库中的功能表。 到表应根据从多选中选择的功能进行适当更新。
我可以在rails控制台中执行以下操作:
@style = Style.first
@style.feature_ids = ['','2','4','6']
输入上述内容后,我会看到我的到表更新了三行相应的style_id和feature_id。
在我的样式中创建表单我有以下内容:
<%= m.input :feature_ids, :label => "Features", :collection => @features, :input_html => { :multiple => true } %>
提交表格后,我收到以下PG错误:
PG::Error: ERROR: column "feature_id" is of type integer but expression is of type character varying at character 96
HINT: You will need to rewrite or cast the expression.
: INSERT INTO "stylefeatures" ("created_at", "feature_id", "style_id", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"
来自params hash:
{"utf8"=>"✓",
"authenticity_token"=>"lkdI9jhlhPW1P2Tyb8jFMKFM/kVXvgcJfSkL0qNH7xk=",
"style"=>{"name"=>"123",
"feature_ids"=>["",
"2",
"4",
"6"],
"commit"=>"Create Style"}
答案 0 :(得分:1)
你的@features
是一个字符串的集合,将它改为整数,你会很好(这就是你的数据库所抱怨的)。