Je ne sais même pas par où commencer avec ça… j'ai essayé de le comprendre toute la journée. Rien de pertinent sur google. Mon site auparavant, tout à fait correct, est inutilisable. Toute page sur laquelle je vais renvoie l'erreur "impossible de convertir les paramètres non autorisés en hachage"
La meilleure gemme erreurs me montre:
attr_reader :cause
def initialize(template)
super($!.message)
set_backtrace($!.backtrace)
@cause = $!
@template, @sub_templates = template, nil
end
J'avais déjà effectué la mise à niveau vers Rails 5 plus tôt dans la journée, de la même manière que pour les autres applications Rails, et je n'ai rencontré aucun problème. Ils utilisent tous plus ou moins les mêmes gemmes. Il se peut que je manque quelque chose mais je ne peux même pas trouver le moindre indice de ce qui est la cause de ceci. Toute aide serait incroyable! Merci! S'il vous plaît laissez-moi savoir si vous avez besoin de quelque chose d'autre.
Gemfile:
source 'https://rubygems.org'
Ruby '2.4.1'
gem 'Rails', '>= 5.0.0.rc2', '< 5.1'
gem 'bootstrap-sass', '~> 3.3', '>= 3.3.6'
gem 'sass-Rails', '~> 5.0', '>= 5.0.5'
gem 'therubyracer', '~> 0.12.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-Rails'
gem 'jquery-Rails'
gem 'jbuilder'
gem 'sdoc', '0.4.0', group: :doc
gem 'animate-Rails'
gem 'google-analytics-Rails', '1.1.0'
gem 'font-awesome-Rails'
gem 'high_voltage', '~> 3.0.0'
gem 'sprockets-Rails', require: 'sprockets/railtie'
gem 'simple_form'
gem 'pg', '~> 0.20.0'
gem 'canonical-Rails', github: 'jumph4x/canonical-Rails'
gem 'sitemap_generator'
gem 'fog'
gem 'listen', '~> 3.0'
gem 'devise', '~> 4.2'
gem 'Paperclip'
gem 'aws-sdk', '~> 2.3'
gem 'wicked'
gem 'reform'
gem 'reform-Rails'
gem 'binding_of_caller'
gem 'bootstrap-datepicker-Rails'
gem 'exception_notification'
gem 'jquery-tablesorter'
gem 'friendly_id', '~> 5.1.0'
gem 'will_paginate', '~> 3.1.0'
gem 'sidekiq'
gem 'redis'
gem 'twilio-Ruby'
gem 'phony_Rails'
gem 'social-share-button'
gem 'chosen-Rails'
gem 'respond-js-Rails'
group :development, :test do
gem 'byebug'
gem 'better_errors'
gem 'letter_opener'
gem 'dotenv-Rails'
gem 'rspec-Rails'
gem 'factory_girl_Rails'
end
group :development do
gem 'spring'
gem 'web-console'
end
group :test do
gem 'minitest-reporters', '1.0.5'
gem 'mini_backtrace', '0.1.3'
gem 'guard-minitest', '2.3.1'
gem 'faker'
gem 'capybara'
gem 'guard-rspec'
gem 'launchy'
end
group :production do
gem 'Rails_12factor', '~> 0.0.3'
gem 'puma', '~> 3.8.2'
gem 'heroku-deflater'
end
gem 'redactor-Rails', github: 'glyph-fr/redactor-Rails'
Partie pertinente des journaux d'erreurs:
actionpack (5.1.0.rc2) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.1.0.rc2) lib/action_dispatch/middleware/static.rb:125:in `call'
() Users/luisaczc/.rvm/gems/Ruby-2.4.1@global/gems/rack- 2.0.1/lib/rack/sendfile.rb:111:in `call'
railties (5.1.0.rc2) lib/Rails/engine.rb:522:in `call'
puma (3.8.2) lib/puma/configuration.rb:224:in `call'
puma (3.8.2) lib/puma/server.rb:600:in `handle_request'
puma (3.8.2) lib/puma/server.rb:435:in `process_client'
puma (3.8.2) lib/puma/server.rb:299:in `block in run'
puma (3.8.2) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
ActionView::Template::Error - unable to convert unpermitted parameters to hash:
actionview (5.1.0.rc2) lib/action_view/template/error.rb:67:in `initialize'
actionview (5.1.0.rc2) lib/action_view/template.rb:321:in `handle_render_error'
actionview (5.1.0.rc2) lib/action_view/template.rb:160:in `rescue in render'
actionview (5.1.0.rc2) lib/action_view/template.rb:155:in `render'
actionview (5.1.0.rc2) lib/action_view/renderer/template_renderer.rb:64:in `render_with_layout'
actionview (5.1.0.rc2) lib/action_view/renderer/template_renderer.rb:50:in `render_template'
actionview (5.1.0.rc2) lib/action_view/renderer/template_renderer.rb:14:in `render'
actionview (5.1.0.rc2) lib/action_view/renderer/renderer.rb:42:in `render_template'
actionview (5.1.0.rc2) lib/action_view/renderer/renderer.rb:23:in `render'
actionview (5.1.0.rc2) lib/action_view/rendering.rb:103:in `_render_template'
actionpack (5.1.0.rc2) lib/action_controller/metal/streaming.rb:217:in `_render_template'
actionview (5.1.0.rc2) lib/action_view/rendering.rb:83:in `render_to_body'
actionpack (5.1.0.rc2) lib/action_controller/metal/rendering.rb:52:in `render_to_body'
actionpack (5.1.0.rc2) lib/action_controller/metal/renderers.rb:141:in `render_to_body'
actionpack (5.1.0.rc2) lib/abstract_controller/rendering.rb:24:in `render'
actionpack (5.1.0.rc2) lib/action_controller/metal/rendering.rb:36:in `render'
actionpack (5.1.0.rc2) lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'
Juste pour réitérer - ce n'est pas une page spécifique, cela se produit partout. Normalement, je pourrais suivre un contrôleur, etc. et résoudre le problème, mais je suis complètement perdu à ce sujet.
Après de nombreuses recherches, j'ai trouvé que c'était un joyau qui causait l'erreur après la mise à jour de Rails vers 5.1. L'utilisation de la gem '' canonical-Rails '' et l'utilisation de la ligne <% = canonical_tag -%> provoquaient cette erreur. Je ne saurais vous dire pourquoi, mais j'espère que cela aidera tout le monde.
Dans Rails 5.1, vous devez autoriser l'accès aux paramètres si vous souhaitez convertir l'objet params en un hachage.
Il existe deux solutions, autant que je sache:
1) Dans votre contrôleur, procédez comme suit:
form = Form.new(params[:form].permit!)
2) Ajoutez ceci à votre config/application.rb pour désactiver les paramètres forts dans Rails (généralement déconseillé):
config.action_controller.permit_all_parameters = true
Il pourrait être plus facile de déboguer si vous rétrogradez à la version 5.0 (<5.1) car vous y verrez des avertissements de dépréciation plutôt que des exceptions.