我有一个场地桌,每个场地属于一个区域和一个类型。我最近删除了表格并添加了一些地址栏字段。我重新迁移了它,但现在area_id字段随机保存? 9图号。 area_id和venuetype_id整数都以与创建新表单相同的方式创建,venuetype_id保存为正常而不是area_id。有人可以提供任何帮助吗?
控制台中显示
=> [#<Venue id: 4, name: "sdf", addressline1: "", addressline2: "", addressline3
: "", addressline4: "", icontoppx: 234, iconleftpx: 234, area_id: 946717224, ven
uetype_id: 8, created_at: "2011-03-17", updated_at: "2011-03-17 23:33:53">]
irb(main):030:0>
在上面的例子中,area_id应为8。
区域和venuetype id是从新场地表格的下拉框中选出的。
新表格
<%= form_for @venue do |f| %>
<p>name: <br>
<%= f.text_field :name %></p>
<p>top: <br>
<%= f.text_field :icontoppx %></p>
<p>left: <br>
<%= f.text_field :iconleftpx %></p>
<p>addressline1: <br>
<%= f.text_field :addressline1 %></p>
<p>addressline2: <br>
<%= f.text_field :addressline2 %></p>
<p>addressline3: <br>
<%= f.text_field :addressline3 %></p>
<p>addressline4: <br>
<%= f.text_field :addressline4 %></p>
<p>area: <br>
<%= f.collection_select(:area_id, Area.all, :id, :name) %></p>
<p>venuetype: <br>
<%= f.collection_select(:venuetype_id, Venuetype.all, :id, :name) %></p>
<br><br>
<div class="button"><%= submit_tag %></div>
<% end %>
区域表
class CreateAreas < ActiveRecord::Migration
def self.up
create_table :areas do |t|
t.string :name
t.timestamps
end
end
def self.down
drop_table :areas
end
end
从控制台显示的区域记录
irb(main):001:0> Area.all
=> [#<Area id: 8, name: "Area1", created_at: "2011-03-17 23:28:40", u
pdated_at: "2011-03-17 23:28:40">, #<Area id: 9, name: "Area2", created_at:
"2011-03-17 23:29:50", updated_at: "2011-03-17 23:29:50">]
irb(main):002:0> Area.all.map(&:id)
非常感谢您的帮助!
答案 0 :(得分:0)
长整数是内部ruby对象id。我猜测Area.all返回的东西不是ActiveRecord对象。可能是这种情况吗?
区域选择列表选项在浏览器和源中是否正确?我希望您在源中看到9位数值。
答案 1 :(得分:0)
此问题以多种方式呈现,包括将更新的字段更改为bigdecimal。无论如何,我不是专家,但我认为它是一个带有windows和mysql2的blip,它通过将一个新的libmySQL.dll副本从mysql bin目录粘贴到ruby bin目录来更正。