지난 2 일 동안 내 앱에서 무슨 일이 벌어 지는지 예상 해 봅니다. 이것은 내 문제입니다 :작업 업데이트 만 마지막 개체
내 모델 :
class User
has_many :orders
---
class Order
belongs_to :user
has_and_belongs_to_many :contributors, class_name: 'User'
상황 : 사용자에 그 후
<%= collection_check_boxes(:order, :contributor_ids, @prac, :id, :to_s) %>
에 기여 (다른 사용자)를 추가 할 수 있습니다 순서에 대한 다음 순서를 만들 수 있습니다 내 OrdersController의 맞춤 작업 내가 다음과 같이 나타납니다.
@order.contributors.each do |u|
u.orders << @order
end
여기 iw 개미는 기여자 (사용자)의 목록에이 순서를 추가합니다. 불행히도이 작업은 마지막 참여자 (사용자)에게만 해당됩니다. 내 콘솔의 로그보다 아래 :
Started PATCH "/orders/282/zatwierdz" for 127.0.0.1 at 2014-07-01 08:48:59 +0200
Processing by OrdersController#zatwierdz as HTML
Parameters: {"authenticity_token"=>"hxWUnazKLoS9t8bVmOAMeIxdo/KYuO33bUeuQZYgeV
k=", "id"=>"282"}
User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."id" = 32 OR
DER BY "users"."id" ASC LIMIT 1
Role Load (0.0ms) SELECT "roles".* FROM "roles" WHERE "roles"."id" = ? LIMI
T 1 [["id", 4]]
Order Load (0.0ms) SELECT "orders".* FROM "orders" WHERE "orders"."id" = ?
ORDER BY created_at DESC LIMIT 1 [["id", 282]]
OrderItem Exists (0.0ms) SELECT 1 AS one FROM "order_items" WHERE "order_it
ems"."order_id" = ? LIMIT 1 [["order_id", 282]]
(0.0ms) begin transaction
SQL (0.0ms) UPDATE "orders" SET "status" = ?, "updated_at" = ? WHERE "orders"
."id" = 282 [["status", 1], ["updated_at", "2014-07-01 06:48:59.486472"]]
(62.5ms) commit transaction
User Load (0.0ms) SELECT "users".* FROM "users" INNER JOIN "orders_users" ON
"users"."id" = "orders_users"."user_id" WHERE "orders_users"."order_id" = ? [["
order_id", 282]]
(0.0ms) begin transaction
(0.0ms) commit transaction
(0.0ms) begin transaction
SQL (0.0ms) UPDATE "orders" SET "updated_at" = ?, "user_id" = ? WHERE "orders
"."id" = 282 [["updated_at", "2014-07-01 06:48:59.564595"], ["user_id", 33]]
(78.1ms) commit transaction
(0.0ms) begin transaction
SQL (0.0ms) UPDATE "orders" SET "updated_at" = ?, "user_id" = ? WHERE "orders
"."id" = 282 [["updated_at", "2014-07-01 06:48:59.642719"], ["user_id", 35]]
(78.1ms) commit transaction
(0.0ms) begin transaction
SQL (0.0ms) UPDATE "orders" SET "updated_at" = ?, "user_id" = ? WHERE "orders
"."id" = 282 [["updated_at", "2014-07-01 06:48:59.720842"], ["user_id", 36]]
(109.4ms) commit transaction
(0.0ms) begin transaction
SQL (0.0ms) UPDATE "orders" SET "updated_at" = ?, "user_id" = ? WHERE "orders
"."id" = 282 [["updated_at", "2014-07-01 06:48:59.830215"], ["user_id", 37]]
(78.1ms) commit transaction
Redirected to http://localhost:3000/orders/282
Completed 302 Found in 437ms (ActiveRecord: 406.2ms)
이 작업을 콜백 및 모델 메서드에서 사용해 보지만 아무 일도 일어나지 않았습니다. 다른 협회를 사용하는 것이 더 나은가? Anny sugestions가 환영합니다. Thx 도움. 이렇게함으로써
지금은 분명합니다. :) 도움을 주셔서 감사합니다. – Panczo
언제나 명백합니다. 천만에요. – Martin