mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: creating watched words...
... wasn't working because it wasn't storing the proper "action" value. Issue was that we were using the "action" parameter which is being used by Rails to determine which controller action to call. We need to use the "action_key" parameter instead.
This commit is contained in:
@@ -14,7 +14,7 @@ class Admin::WatchedWordsController < Admin::StaffController
|
||||
|
||||
def create
|
||||
opts = watched_words_params
|
||||
action = opts[:action] || self.class.actions[opts[:action_key].to_sym]
|
||||
action = WatchedWord.actions[opts[:action_key].to_sym]
|
||||
words = opts.delete(:words)
|
||||
|
||||
watched_word_group = WatchedWordGroup.new(action: action)
|
||||
@@ -118,6 +118,6 @@ class Admin::WatchedWordsController < Admin::StaffController
|
||||
|
||||
def watched_words_params
|
||||
@watched_words_params ||=
|
||||
params.permit(:id, :replacement, :action, :action_key, :case_sensitive, words: [])
|
||||
params.permit(:id, :replacement, :action_key, :case_sensitive, words: [])
|
||||
end
|
||||
end
|
||||
|
||||
@@ -5,14 +5,9 @@ class WatchedWordGroup < ActiveRecord::Base
|
||||
|
||||
has_many :watched_words, dependent: :destroy
|
||||
|
||||
def self.actions
|
||||
WatchedWord.actions
|
||||
end
|
||||
|
||||
def create_or_update_members(words, params)
|
||||
WatchedWordGroup.transaction do
|
||||
self.action_key = params[:action_key] if params[:action_key]
|
||||
self.action = params[:action] if params[:action]
|
||||
self.action = WatchedWord.actions[params[:action_key].to_sym]
|
||||
self.save! if self.changed?
|
||||
|
||||
words.each do |word|
|
||||
@@ -21,22 +16,16 @@ class WatchedWordGroup < ActiveRecord::Base
|
||||
params.merge(word: word, watched_word_group_id: self.id),
|
||||
)
|
||||
|
||||
unless watched_word.valid?
|
||||
if !watched_word.valid?
|
||||
self.errors.merge!(watched_word.errors)
|
||||
|
||||
raise ActiveRecord::Rollback
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def action_key=(arg)
|
||||
self.action = WatchedWordGroup.actions[arg.to_sym]
|
||||
end
|
||||
|
||||
def action_log_details
|
||||
action_key = WatchedWord.actions.key(self.action)
|
||||
"#{action_key} → #{watched_words.pluck(:word).join(", ")}"
|
||||
"#{WatchedWord.actions.key(self.action)} → #{watched_words.pluck(:word).join(", ")}"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user