Rails обновляет несколько моделей одного типа в сообщении - PullRequest
1 голос
/ 10 февраля 2011

У меня есть проблема, когда я пытаюсь обновить несколько моделей одного типа в сообщении.Первая модель в цикле обновляется, но остальные по какой-то причине этого не делают.

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

Кто-нибудь имеет какие-либо идеи относительно того, что моя проблема здесь?Спасибо

  def special_save
    temp = params["_json"]

    temp.each { |h|
      hh = h['h_w']

      h_w = HourWorking.find(hh[:id])

      hh.delete('id')

      h_w.update_attributes(hh)
    }
  end   



HourWorking Load (2.5ms)  SELECT "hour_workings".* FROM "hour_workings" WHERE ("hour_workings"."id" = 187) LIMIT 1
SQL (1.2ms)  BEGIN
SQL (3.7ms)   SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"hour_workings"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
SQL (1.7ms)  UPDATE "hour_workings" SET "end_time" = '2000-01-01 04:45:00.000000', "start_time" = '2000-01-01 01:45:00.000000', "updated_at" = '2011-02-10 10:18:19.955198' WHERE ("hour_workings"."id" = 187)
SQL (4.3ms)  COMMIT
HourWorking Load (1.7ms)  SELECT "hour_workings".* FROM "hour_workings" WHERE ("hour_workings"."id" = 169) LIMIT 1
SQL (1.2ms)  BEGIN
SQL (12.8ms)  COMMIT
HourWorking Load (6.0ms)  SELECT "hour_workings".* FROM "hour_workings" WHERE ("hour_workings"."id" = 154) LIMIT 1
SQL (1.5ms)  BEGIN
SQL (1.3ms)  COMMIT
HourWorking Load (2.3ms)  SELECT "hour_workings".* FROM "hour_workings" WHERE ("hour_workings"."id" = 170) LIMIT 1
SQL (9.8ms)  BEGIN
SQL (1.1ms)  COMMIT
HourWorking Load (1.5ms)  SELECT "hour_workings".* FROM "hour_workings" WHERE ("hour_workings"."id" = 171) LIMIT 1
SQL (1.2ms)  BEGIN
SQL (12.3ms)  COMMIT
HourWorking Load (6.2ms)  SELECT "hour_workings".* FROM "hour_workings" WHERE ("hour_workings"."id" = 165) LIMIT 1
SQL (1.1ms)  BEGIN
SQL (1.6ms)  COMMIT
HourWorking Load (2.0ms)  SELECT "hour_workings".* FROM "hour_workings" WHERE ("hour_workings"."id" = 153) LIMIT 1
SQL (1.0ms)  BEGIN
SQL (1.6ms)  COMMIT

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

попробуйте удалить ключ: id

hh.delete(:id)
0 голосов
/ 11 февраля 2011

Ах, я нашел свою проблему.

У меня была проблема, когда публикуемые мной параметры были точными копиями того, что уже было в базе данных.

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