Skip to content

Instantly share code, notes, and snippets.

@Fcukit
Created August 17, 2018 11:19
Show Gist options
  • Save Fcukit/63c006221b2f945caa4f316f1e8d03fc to your computer and use it in GitHub Desktop.
Save Fcukit/63c006221b2f945caa4f316f1e8d03fc to your computer and use it in GitHub Desktop.
def update
if (criteria_to_remove = params[:delete])
model = criteria_to_remove.keys.first
field = criteria_to_remove.values.first
feed.update(criteria: feed.criteria.except(model).deep_merge({ model => feed.criteria[model].except(field) }) )
redirect_to edit_admin_feed_path(feed), notice: 'Критерии фида отредактированы успешно'
elsif params[:criteria].present?
permitted_criteria_params
criteria = params[:criteria]
additional_criteria =
criteria.keys.map do |model|
{ model.to_sym => criteria[model].to_h.map { |key, value| Hash[key.to_sym, Hash[value['operator'].to_sym, value['value']]] }.inject(:merge) }
end
.inject(:merge)
feed.update(criteria: feed.criteria.deep_merge(additional_criteria))
redirect_to edit_admin_feed_path(feed), notice: 'Критерии фида отредактированы успешно'
else
if feed.update(permitted_params)
redirect_to edit_admin_feed_path(feed), notice: 'Фид отредактирован успешно'
else
render :edit
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment