mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 02:11:08 -06:00
work around for http://meta.discourse.org/t/activerecord-statementinvalid-exception-raised-in-models-user-action-rb/7275/4
This commit is contained in:
parent
7b1f9928e4
commit
0acc96c94e
@ -163,10 +163,16 @@ ORDER BY p.created_at desc
|
||||
end
|
||||
|
||||
def self.log_action!(hash)
|
||||
require_parameters(hash, :action_type, :user_id, :acting_user_id, :target_topic_id, :target_post_id)
|
||||
required_parameters = [:action_type, :user_id, :acting_user_id, :target_topic_id, :target_post_id]
|
||||
require_parameters(hash, *required_parameters)
|
||||
transaction(requires_new: true) do
|
||||
begin
|
||||
action = new(hash)
|
||||
|
||||
# protect against dupes, for some reason this is failing in some cases
|
||||
action = self.where(hash.select{|k,v| required_parameters.include?(k)}).first
|
||||
return action if action
|
||||
|
||||
action = self.new(hash)
|
||||
|
||||
if hash[:created_at]
|
||||
action.created_at = hash[:created_at]
|
||||
|
@ -87,6 +87,9 @@ describe UserAction do
|
||||
stats_for_user(u).should == [UserAction::NEW_TOPIC]
|
||||
stream_count(u).should == 1
|
||||
|
||||
# duplicate should not exception out
|
||||
log_test_action
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@ -107,6 +110,7 @@ describe UserAction do
|
||||
it "creates a new stream entry" do
|
||||
PostAction.act(liker, post, PostActionType.types[:like])
|
||||
likee_stream.count.should == @old_count + 1
|
||||
|
||||
end
|
||||
|
||||
context "successful like" do
|
||||
|
Loading…
Reference in New Issue
Block a user