From 3cf753c5403b49903123ec38c1bf94a2fb7433c5 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 15 Nov 2017 16:38:18 -0600 Subject: [PATCH] Fix forum_post_id not being saved by alias/implication requests. `forum_post_id` failed to save due to mass-assignment protection. This caused alias approval messages ("The tag alias foo -> bar (forum #1234) has been approved.") to not include the "(forum #1234)" bit because the forum id was nil. --- app/logical/tag_alias_request.rb | 4 +++- app/logical/tag_implication_request.rb | 4 +++- test/unit/tag_alias_request_test.rb | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/logical/tag_alias_request.rb b/app/logical/tag_alias_request.rb index 6a238b634..6c37f7063 100644 --- a/app/logical/tag_alias_request.rb +++ b/app/logical/tag_alias_request.rb @@ -31,7 +31,9 @@ class TagAliasRequest @forum_topic = build_forum_topic(@tag_alias.id) @forum_topic.save - @tag_alias.update_attributes(forum_topic_id: @forum_topic.id, forum_post_id: @forum_topic.posts.first.id) + @tag_alias.forum_topic_id = @forum_topic.id + @tag_alias.forum_post_id = @forum_topic.posts.first.id + @tag_alias.save end end diff --git a/app/logical/tag_implication_request.rb b/app/logical/tag_implication_request.rb index 0c29c3944..1d2b44de7 100644 --- a/app/logical/tag_implication_request.rb +++ b/app/logical/tag_implication_request.rb @@ -31,7 +31,9 @@ class TagImplicationRequest @forum_topic = build_forum_topic(@tag_implication.id) @forum_topic.save - @tag_implication.update_attributes(:forum_topic_id => @forum_topic.id, :forum_post_id => @forum_topic.posts.first.id) + @tag_implication.forum_topic_id = @forum_topic.id + @tag_implication.forum_post_id = @forum_topic.posts.first.id + @tag_implication.save end end diff --git a/test/unit/tag_alias_request_test.rb b/test/unit/tag_alias_request_test.rb index 7d140b04a..23ddff93b 100644 --- a/test/unit/tag_alias_request_test.rb +++ b/test/unit/tag_alias_request_test.rb @@ -46,5 +46,11 @@ class TagAliasRequestTest < ActiveSupport::TestCase tar.create end end + + should "save the forum post id" do + tar = TagAliasRequest.new(:antecedent_name => "aaa", :consequent_name => "bbb", :reason => "reason", :skip_secondary_validations => true) + tar.create + assert_equal(tar.forum_topic.posts.first.id, tar.tag_alias.forum_post.id) + end end end