При сохранении новой записи связанный идентификатор меняется на 9-значный номер - PullRequest
0 голосов
/ 18 марта 2011

У меня есть таблица мест, где каждое место принадлежит области и типу.Недавно я удалил таблицу и добавил к ней некоторые поля адресной строки.Я перенастроил его, но теперь поле 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 не учитываютсявыпадающие списки на новой форме объекта.

новая форма

<%= 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)

Большое спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 22 марта 2011

Эта проблема представлена ​​несколькими способами, в том числе изменение поля at в bigdecimal. Во всяком случае, я не эксперт, но я думаю, что это ошибка с windows и mysql2, которую он исправил, вставив новую копию libmySQL.dll из каталога mysql bin в каталог ruby ​​bin.

0 голосов
/ 18 марта 2011

Длинное целое число - внутренний идентификатор объекта ruby.Я предполагаю, что то, что возвращает Area.all, не является объектами ActiveRecord.Может ли это быть так?

Правильно ли выглядят параметры списка выбора области в браузере и источнике?Я ожидаю, что вы видите 9-значные значения в источнике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...