2017-04-21 6 views
5

मुझे यह भी नहीं पता कि यह कहां से शुरू किया जाए ... पूरे दिन इसे समझने की कोशिश कर रहा है। गूगल पर कुछ भी प्रासंगिक नहीं है। मेरी पहले ठीक है, पूरी साइट अनुपयोगी है। किसी भी पेज मैं करने के लिए जाने त्रुटिअसुरक्षित पैरामीटर को हैश में कनवर्ट करने में असमर्थ - रेल ऐप त्रुटि पर रूबी

बेहतर त्रुटियों मणि "hash को unpermitted मापदंडों परिवर्तित करने में असमर्थ" फेंकता है मुझे पता चलता है: फिर से उठाने के दौरान रीसेट करने #CAUSE को रोकने के लिए

अवहेलना।

 attr_reader :cause 
    def initialize(template) 
     super($!.message) 
     set_backtrace($!.backtrace) 
    @cause = $! 
    @template, @sub_templates = template, nil 
    end 

मैं दिन में पहले रेल के लिए 5, अन्य रेल एप्लिकेशन के साथ के रूप में पूरी तरह से एक ही तरह से उन्नत बनाया और सब पर कोई समस्या नहीं था - वे सभी लगभग समान ही जवाहरात के रूप में अच्छी तरह से इस्तेमाल करते हैं। मुझे कुछ याद आ रहा है लेकिन मुझे इसका कारण बनने का मामूली संकेत भी नहीं मिल रहा है। कोई मदद अद्भुत होगा! धन्यवाद! अगर आपको कुछ और चाहिए तो कृपया मुझे बताएं।

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' 

त्रुटि लॉग्स के प्रासंगिक भाग:

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/[email protected]/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' 

बस दोहराना के लिए - यह पेज विशिष्ट नहीं है, यह पूरे हो रहा है। आम तौर पर मैं एक नियंत्रक आदि का पालन कर सकता हूं और समस्या का समाधान कर सकता हूं लेकिन मैं इस पर पूरी तरह खो गया हूं।

उत्तर

1

अधिक खोज के माध्यम से मैंने पाया कि यह एक मणि था जो रेल को 5.1 को अद्यतन करने के बाद त्रुटि उत्पन्न कर रहा था। 'कैनोलिक-रेल' मणि का उपयोग करके और <% = canonical_tag -%> किसी कारण से इस त्रुटि का कारण बन रहा था। आपको यह नहीं बता सका, लेकिन उम्मीद है कि यह किसी और की मदद करेगा जो इसके पार आता है।

16

रेल में 5.1 ऐसा लगता है कि यदि आप पैराम्स ऑब्जेक्ट को हैश में कनवर्ट करना चाहते हैं तो आपको पैरामीटर तक पहुंच की अनुमति देनी होगी।

वहाँ AFAIK दो समाधान हैं:

1) अपने नियंत्रक में इस करते हैं:

form = Form.new(params[:form].permit!) 

2) अपने config/application.rb को यह जोड़े रेल में मजबूत मापदंडों निष्क्रिय करने के लिए (आमतौर पर सलाह नहीं दी):

config.action_controller.permit_all_parameters = true 
+0

आपके उत्तर के लिए धन्यवाद। मैं निश्चित रूप से मजबूत मानकों को अक्षम नहीं करना चाहता था, जैसा कि आप कहते हैं, सबसे अच्छा विचार नहीं है। मैंने पाया है कि समस्या का कारण क्या था, मेरा जवाब देखें। – DanRio

+1

मैं फॉर्म ऑब्जेक्ट पैटर्न का उपयोग करता हूं इसलिए मुझे मजबूत पैरा की आवश्यकता नहीं है – cmrichards

0

यदि आप 5.0 (< 5.1) पर डाउनग्रेड करते हैं तो डीबग करना आसान हो सकता है क्योंकि आप अपवादों के बजाय बहिष्करण चेतावनियां देखेंगे।

संबंधित मुद्दे