Ошибка разработки маршрутизации при обновлении Gem (Rails 3, Devise + Omniauth) - PullRequest
1 голос
/ 08 июля 2011

Я использую Devise + Omniauth (Facebook) и недавно обновил свои гемы (Rails 3.0.5, Ruby 1.9.2).После запуска моего сервера приложений следующая строка вways.rb:

devise_for: users,: controllers => {: omniauth_callbacks => "users / omniauth_callbacks",: registrations => "registrations"}

начал выдавать следующую ошибку:

/Users/myname/.rvm/gems/ruby-1.9.2-p0/gems/rack-mount-0.6.14/lib/rack/mount/route_set.rb:62:in `add_route': conditions may only include [:auth_type, :gateway_interface, :path_translated, :remote_host, :remote_ident, :remote_user, :remote_addr, :server_name, :server_protocol, :accept, :accept_charset, :accept_encoding, :accept_language, :cache_control, :from, :negotiate, :pragma, :key?, :request_method, :request_method_symbol, :method, :method_symbol, :get?, :post?, :put?, :delete?, :head?, :headers, :fullpath, :forgery_whitelisted?, :forgery_whitelisted_with_deprecation?, :forgery_whitelisted_without_deprecation?, :media_type, :content_length, :xml_http_request?, :xhr?, :ip, :remote_ip, :server_software, :raw_post, :body, :form_data?, :body_stream, :reset_session, :session=, :session_options=, :GET, :query_parameters, :POST, :request_parameters, :authorization, :local?, :cookie_jar, :flash, :url, :scheme, :protocol, :ssl?, :raw_host_with_port, :host, :host_with_port, :port, :standard_port, :standard_port?, :port_string, :server_port, :domain, :subdomains, :subdomain, :request_uri, :filtered_parameters, :filtered_env, :parameters, :params, :path_parameters=, :symbolized_path_parameters, :path_parameters, :content_mime_type, :content_type, :accepts, :format, :formats, :format=, :negotiate_mime, :if_modified_since, :if_none_match, :not_modified?, :etag_matches?, :fresh?, :env, :script_name, :path_info, :query_string, :session, :session_options, :logger, :media_type_params, :content_charset, :script_name=, :path_info=, :options?, :trace?, :parseable_data?, :[], :[]=, :values_at, :referer, :referrer, :user_agent, :cookies, :path, :location, :taguri=, :taguri, :to_yaml_style, :to_yaml_properties, :syck_to_yaml, :to_yaml, :blank?, :present?, :presence, :duplicable?, :acts_like?, :try, :html_safe?, :to_json, :instance_values, :instance_variable_names, :copy_instance_variables_from, :as_json, :with_options, :to_param, :to_query, :friendly_id?, :unfriendly_id?, :to_html, :dclone, :`, :returning, :require_or_load, :require_dependency, :require_association, :load_dependency, :load, :require, :unloadable, :nil?, :===, :=~, :!~, :eql?, :hash, :<=>, :class, :singleton_class, :clone, :dup, :initialize_dup, :initialize_clone, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :to_s, :inspect, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :respond_to_missing?, :extend, :display, :public_method, :define_singleton_method, :__id__, :object_id, :to_enum, :enum_for, :gem, :silence_warnings, :enable_warnings, :with_warnings, :silence_stderr, :silence_stream, :suppress, :class_eval, :suppress_warnings, :require_library_or_gem, :debugger, :breakpoint, :==, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__] (ArgumentError)

Есть ли новый синтаксис для маршрутов, названных таким образом?

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Вы можете взломать его, изменив строку 338 в devise-1.4.2 / lib / devise / rails / rout.rb на:

match "#{path_prefix}/:action/callback", #:action => Regexp.union(mapping.to.omniauth_providers.map(&:to_s)),

Имейте в виду, что это всего лишь уродливый взлом, а не окончательное решение проблемы!

Убедитесь, что вы установили

devise :omniauthable, :omniauth_providers => [:twitter]

в вашей модели устройства (например, пользователь).

0 голосов
/ 04 сентября 2011

Обновите до подделки-0.4.0, если вы используете его с Devise / Omniauth.Мы расширяли некоторые базовые классы ruby ​​(я знаю, это всегда отличная идея), и это как-то вызывало проблемы в Devise.Версия 0.4.0 больше не расширяет базовые классы ruby ​​и должна быть полностью безопасной для включения.Дайте нам знать, если у вас есть какие-либо проблемы на http://github.com/sevenwire/forgery. Спасибо!

...