Merit + Rails 4 и защищенные атрибуты
Всем днем,
Я только что загрузил драгоценность, я установил все свои значки, но в действии я вижу следующее:
WARNING: Can't mass-assign protected attributes for Merit::Action:
user_id, action_method, action_value, had_errors, target_model,
target_id
Я пытался поместить его в пользователя attr_accessible, но на самом деле не хочу выдавать user_id таким образом.
Вот система баллов:
score 10, :to => :user, on: 'snippets#create' do |comment|
comment.content.present?
end
Кто-нибудь сталкивался с этой проблемой.
Я прочитал проблемы на github, и has_merit в модели не должен вызывать эту проблему.
Вот полный журнал, если я готовлю это право, он предупреждает меня и продолжает вставку в любом случае, но у моего пользователя нет очков или значков.
(2.5ms) COMMIT
(0.1ms) BEGIN
SQL (3.3ms) UPDATE "snippets" SET "user_id" = $1, "updated_at" = $2 WHERE "snippets"."id" = 11 [["user_id", 1], ["updated_at", Fri, 22 Nov 2013 16:55:02 UTC +00:00]]
Merit::Sash Load (0.3ms) SELECT "sashes".* FROM "sashes" WHERE "sashes"."id" = $1 ORDER BY "sashes"."id" ASC LIMIT 1 [["id", 3]]
Merit::Score Load (1.5ms) SELECT "merit_scores".* FROM "merit_scores" WHERE "merit_scores"."sash_id" = $1 AND "merit_scores"."category" = 'default' ORDER BY "merit_scores"."id" ASC LIMIT 1 [["sash_id", 3]]
(1.7ms) SELECT SUM("merit_score_points"."num_points") AS sum_num_points, score_id AS score_id FROM "merit_score_points" WHERE "merit_score_points"."score_id" = $1 GROUP BY score_id [["score_id", 3]]
(3.5ms) COMMIT
Redirected to http://0.0.0.0:3000/books/1
WARNING: Can't mass-assign protected attributes for Merit::Action: user_id, action_method, action_value, had_errors, target_model, target_id
(0.4ms) BEGIN
SQL (0.5ms) INSERT INTO "merit_actions" ("created_at", "updated_at") VALUES ($1, $2) RETURNING "id" [["created_at", Fri, 22 Nov 2013 16:55:02 UTC +00:00], ["updated_at", Fri, 22 Nov 2013 16:55:02 UTC +00:00]]
(1.4ms) COMMIT
Merit::Action Load (0.5ms) SELECT "merit_actions".* FROM "merit_actions" WHERE "merit_actions"."processed" = 'f'
(0.2ms) BEGIN
SQL (4.6ms) UPDATE "merit_actions" SET "processed" = $1, "updated_at" = $2 WHERE "merit_actions"."id" = 13 [["processed", true], ["updated_at", Fri, 22 Nov 2013 16:55:02 UTC +00:00]]
(1.4ms) COMMIT
Completed 302 Found in 226ms (ActiveRecord: 43.0ms)
Немного потерян.
1 ответ
Проблема заключалась в том, что заслуга еще не была подготовлена для комбинации Rails 4 и protected_attributes
драгоценный камень. Исправлено с сегодняшнего дня в мастере.