DEV: Add support for Rails 6

Minor fixes to add Rails 6 support to Discourse, we now will boot
with RAILS_MASTER=1, all specs pass

Only one tiny deprecation left

Largest change was the way ActiveModel:Errors changed interface a
bit but there is a simple backwards compat way of working it
This commit is contained in:
Sam Saffron
2019-04-30 16:58:18 +10:00
parent cf235fbd48
commit 1be01f8dd4
31 changed files with 83 additions and 54 deletions

View File

@@ -3,7 +3,11 @@
class ExtraLocalesController < ApplicationController
layout :false
skip_before_action :check_xhr, :preload_json, :redirect_to_login_if_required
skip_before_action :check_xhr,
:preload_json,
:redirect_to_login_if_required,
:verify_authenticity_token
def show
bundle = params[:bundle]

View File

@@ -152,7 +152,7 @@ class UploadsController < ApplicationController
upload.update_columns(retain_hours: retain_hours) if retain_hours > 0
end
upload.errors.empty? ? upload : { errors: upload.errors.values.flatten }
upload.errors.empty? ? upload : { errors: upload.errors.to_hash.values.flatten }
ensure
tempfile&.close!
end

View File

@@ -584,7 +584,7 @@ class UserNotifications < ActionMailer::Base
)
unless translation_override_exists
html = UserNotificationRenderer.new(Rails.configuration.paths["app/views"]).render(
html = UserNotificationRenderer.with_view_paths(Rails.configuration.paths["app/views"]).render(
template: 'email/invite',
format: :html,
locals: { message: PrettyText.cook(message, sanitize: false).html_safe,
@@ -611,7 +611,8 @@ class UserNotifications < ActionMailer::Base
end
unless translation_override_exists
html = UserNotificationRenderer.new(Rails.configuration.paths["app/views"]).render(
html = UserNotificationRenderer.with_view_paths(Rails.configuration.paths["app/views"]).render(
template: 'email/notification',
format: :html,
locals: { context_posts: context_posts,

View File

@@ -99,7 +99,7 @@ class Group < ActiveRecord::Base
validates :messageable_level, inclusion: { in: ALIAS_LEVELS.values }
scope :visible_groups, Proc.new { |user, order, opts|
groups = Group.order(order || "name ASC")
groups = self.order(order || "name ASC")
if !opts || !opts[:include_everyone]
groups = groups.where("groups.id > 0")

View File

@@ -988,7 +988,7 @@ class User < ActiveRecord::Base
end
def secure_category_ids
cats = self.admin? ? Category.where(read_restricted: true) : secure_categories.references(:categories)
cats = self.admin? ? Category.unscoped.where(read_restricted: true) : secure_categories.references(:categories)
cats.pluck('categories.id').sort
end

View File

@@ -5,7 +5,7 @@
<%- end %>
<% site_apple_touch_icon_url = SiteSetting.site_apple_touch_icon_url %>
<%- if site_apple_touch_icon_url.present? %>
<link rel="apple-touch-icon" type="image/png" href="<%= UrlHelper.absolute(site_apple_touch_icon_url) %>">
<link rel="apple-touch-icon" type="image/png" href="<%= ::UrlHelper.absolute(site_apple_touch_icon_url) %>">
<%- end %>
<meta name="theme-color" content="#<%= ColorScheme.hex_for_name('header_background', scheme_id) %>">
<% if mobile_view? %>

View File

@@ -4,7 +4,7 @@
<Description>Search for posts on <%= SiteSetting.title %></Description>
<Tags>discourse forum</Tags>
<% site_favicon_url = SiteSetting.site_favicon_url %>
<% absolute_site_favicon_url = UrlHelper.absolute(site_favicon_url) %>
<% absolute_site_favicon_url = ::UrlHelper.absolute(site_favicon_url) %>
<% if site_favicon_url =~ /\.ico$/ -%>
<Image height="16" width="16" type="image/vnd.microsoft.icon"><%= absolute_site_favicon_url %></Image>
<%- else -%>

View File

@@ -4,7 +4,7 @@
<%= @error %>
</div>
<%end%>
<% if @user.present? and @user.errors.any? %>
<% if @user.present? and @user.errors.present? %>
<div class='alert alert-error'>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>