Recently I upgraded less-rails gem to 3.0.0. The error raised on stylesheet_link_tag, javascript_include_tag, image_tag and anywhere else that involving asset pipeline.
However when I prepend /assets/ e.g change from
= stylesheet_link_tag "application" to = stylesheet_link_tag "/assets/application" it works.
Error trace:
less (2.6.0) lib/less/parser.rb:74:in `block (2 levels) in parse'
at Parser.parser.parse (less (2.6.0) lib/less/js/lib/less/parser.js:511:24)
less (2.6.0) lib/less/parser.rb:64:in `block in parse'
less (2.6.0) lib/less/java_script/v8_context.rb:90:in `block in do_lock'
less (2.6.0) lib/less/java_script/v8_context.rb:88:in `Locker'
less (2.6.0) lib/less/java_script/v8_context.rb:88:in `do_lock'
less (2.6.0) lib/less/java_script/v8_context.rb:60:in `lock'
less (2.6.0) lib/less/java_script/v8_context.rb:30:in `exec'
less (2.6.0) lib/less/java_script.rb:26:in `exec'
less (2.6.0) lib/less/parser.rb:63:in `parse'
less-rails (3.0.0) lib/less/rails/template_handlers.rb:18:in `evaluate'
tilt (2.0.8) lib/tilt/template.rb:109:in `render'
grease (0.3.1) lib/grease/adapter.rb:12:in `call'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:75:in `call_processor'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:57:in `block in call_processors'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:56:in `reverse_each'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:56:in `call_processors'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:75:in `call_processor'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:57:in `block in call_processors'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:56:in `reverse_each'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:56:in `call_processors'
sprockets (3.7.1) lib/sprockets/loader.rb:134:in `load_from_unloaded'
sprockets (3.7.1) lib/sprockets/loader.rb:60:in `block in load'
sprockets (3.7.1) lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
sprockets (3.7.1) lib/sprockets/loader.rb:44:in `load'
sprockets (3.7.1) lib/sprockets/cached_environment.rb:20:in `block in initialize'
sprockets (3.7.1) lib/sprockets/cached_environment.rb:47:in `load'
sprockets (3.7.1) lib/sprockets/bundle.rb:23:in `block in call'
sprockets (3.7.1) lib/sprockets/utils.rb:200:in `dfs'
sprockets (3.7.1) lib/sprockets/bundle.rb:24:in `call'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:75:in `call_processor'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:57:in `block in call_processors'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:56:in `reverse_each'
sprockets (3.7.1) lib/sprockets/processor_utils.rb:56:in `call_processors'
sprockets (3.7.1) lib/sprockets/loader.rb:134:in `load_from_unloaded'
sprockets (3.7.1) lib/sprockets/loader.rb:60:in `block in load'
sprockets (3.7.1) lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
sprockets (3.7.1) lib/sprockets/loader.rb:44:in `load'
sprockets (3.7.1) lib/sprockets/cached_environment.rb:20:in `block in initialize'
sprockets (3.7.1) lib/sprockets/cached_environment.rb:47:in `load'
sprockets (3.7.1) lib/sprockets/base.rb:66:in `find_asset'
sprockets (3.7.1) lib/sprockets/base.rb:73:in `find_all_linked_assets'
sprockets (3.7.1) lib/sprockets/manifest.rb:134:in `block in find'
sprockets (3.7.1) lib/sprockets/manifest.rb:133:in `each'
sprockets (3.7.1) lib/sprockets/manifest.rb:133:in `find'
sprockets-rails (3.2.1) lib/sprockets/railtie.rb:50:in `each'
sprockets-rails (3.2.1) lib/sprockets/railtie.rb:50:in `map'
sprockets-rails (3.2.1) lib/sprockets/railtie.rb:50:in `precompiled_assets'
sprockets-rails (3.2.1) lib/sprockets/railtie.rb:35:in `asset_precompiled?'
sprockets-rails (3.2.1) lib/sprockets/railtie.rb:251:in `block (3 levels) in <class:Railtie>'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:359:in `precompiled?'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:363:in `raise_unless_precompiled_asset'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:337:in `digest_path'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:325:in `asset_path'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:102:in `block in resolve_asset_path'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:242:in `block in resolve_asset'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:241:in `each'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:241:in `detect'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:241:in `resolve_asset'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:101:in `resolve_asset_path'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:79:in `compute_asset_path'
actionview (5.0.2) lib/action_view/helpers/asset_url_helper.rb:144:in `asset_path'
actionview (5.0.2) lib/action_view/helpers/asset_url_helper.rb:254:in `javascript_path'
actionview (5.0.2) lib/action_view/helpers/asset_tag_helper.rb:61:in `block in javascript_include_tag'
actionview (5.0.2) lib/action_view/helpers/asset_tag_helper.rb:59:in `map'
actionview (5.0.2) lib/action_view/helpers/asset_tag_helper.rb:59:in `javascript_include_tag'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:156:in `block in javascript_include_tag'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:154:in `map'
sprockets-rails (3.2.1) lib/sprockets/rails/helper.rb:154:in `javascript_include_tag'
app/views/layouts/application.html.haml:185:in `_app_views_layouts_application_html_haml__1636334633396439568_70098641364520'
I tried removing one by one css and js file but it seems the issue are not with the files. Any idea?
Here is the output when I run Rails.application.config.assets.paths (file paths are ommited) :
["/path/to/rails-project/app/assets/fonts", "/path/to/rails-project/app/assets/images", "/path/to/rails-project/app/assets/javascripts", "/path/to/rails-project/app/assets/stylesheets", "/path/to/rails-project/vendor/assets/javascripts", "/path/to/rails-project/vendor/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-jcrop-0.9.12/app/assets/images", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-jcrop-0.9.12/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-jcrop-0.9.12/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-jcrop-0.9.12/app/assets/templates", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-Sortable-1.4.2/app/assets/images", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-Sortable-1.4.2/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-Sortable-1.4.2/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-Sortable-1.4.2/app/assets/templates", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-react-bootstrap-0.28.1/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-react-0.14.3/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails-assets-classnames-2.2.0/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/activeadmin-1.0.0/app/assets/images", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/activeadmin-1.0.0/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/activeadmin-1.0.0/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jquery-ui-rails-6.0.1/app/assets/images", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jquery-ui-rails-6.0.1/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jquery-ui-rails-6.0.1/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/bourbon-4.3.4/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/s3_file_field-1.3.0/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/s3_direct_upload-0.1.7/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/s3_direct_upload-0.1.7/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jquery-fileupload-rails-0.4.1/vendor/assets/images", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jquery-fileupload-rails-0.4.1/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jquery-fileupload-rails-0.4.1/vendor/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/browser-timezone-rails-1.0.1/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jstz-rails3-plus-1.0.5/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/js_cookie_rails-2.1.4/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/browser-timezone-rails-1.0.1/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/bootstrap3-datetimepicker-rails-4.17.37/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/bootstrap3-datetimepicker-rails-4.17.37/vendor/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/momentjs-rails-2.11.0/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/bootstrap-datepicker-rails-1.3.0.2/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/bootstrap-datepicker-rails-1.3.0.2/vendor/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/bundler/gems/surveyor-9563ce853417/lib/assets/fonts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/bundler/gems/surveyor-9563ce853417/lib/assets/images", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/bundler/gems/surveyor-9563ce853417/lib/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/bundler/gems/surveyor-9563ce853417/lib/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/turboboost-0.1.1/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jquery-turbolinks-2.1.0/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/formtastic-3.1.5/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/rails3-jquery-autocomplete-1.0.14/lib/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/cocoon-1.2.6/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jqcloud-rails-1.0.0/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jqcloud-rails-1.0.0/vendor/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/pickadate-rails-1.5.0/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/pickadate-rails-1.5.0/vendor/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/bootstrap-slider-rails-9.8.0/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/bootstrap-slider-rails-9.8.0/vendor/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/twitter-bootstrap-rails-3.2.2/app/assets/fonts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/twitter-bootstrap-rails-3.2.2/app/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/twitter-bootstrap-rails-3.2.2/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/twitter-bootstrap-rails-3.2.2/vendor/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/font-awesome-rails-4.7.0.2/app/assets/fonts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/font-awesome-rails-4.7.0.2/app/assets/stylesheets", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/jquery-rails-4.3.1/vendor/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/coffee-rails-4.2.2/lib/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/actioncable-5.0.2/lib/assets/compiled", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/turbolinks-source-5.0.3/lib/assets/javascripts", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/react-rails-2.2.1/lib/assets/react-source/development-with-addons", "/Users/my-username/.rvm/gems/ruby-2.4.2#gemset-name/gems/react-rails-2.2.1/lib/assets/javascripts/"]
Related
I just started using Rails and I'm stuck. I cannot understand why I'm getting this error:
This is the class InnkeeperBillingInformation:
class InnkeeperBillingInformation < ApplicationRecord
belongs_to :user
validates :first_name, :last_name, :company_name,
:address, :municipality, :province, :country,
:zip_code, :tax_code, :vat, :email, :phone_number,
presence: true
after_create :generate_invoice
private
def generate_invoice
subscription = user.innkeeper_subscription
subscription.invoices.create(number: generate_invoice_name(user), amount: subscription.type.price)
end
def generate_invoice_name(user)
month = Time.now.strftime("%B")
"Abbonamento: #{user.subscription_type} - #{month} #{Time.now.year}"
end
end
This is the controller:
def create
#innkeeper_billing_information = InnkeeperBillingInformation.new innkeeper_billing_information_params
if #innkeeper_billing_information.save
redirect_to dashboard_path, notice: "Dati di fatturazione salvati con successo!"
else
redirect_to({ action: :index }, notice: "Non è stato possibile completare la richiesta.")
end
end
Class NullInnkeeperSubscription:
class NullInnkeeperSubscription
def id
nil
end
def active?
false
end
def empty_array
[]
end
def type_name
"Nessuno"
end
%w(eateries menu_sections menus dishes invitations innkeeper_subscription_managers).each do |method|
alias_method method, "empty_array"
end
end
Class User.rb:
def innkeeper_subscription
innkeeper_subscriptions.detect(&:active?) || NullInnkeeperSubscription.new
end
This is the Stack trace:
NoMethodError - undefined method `invoices' for #<NullInnkeeperSubscription:0x00007fc42ebf3930>:
app/models/innkeeper_billing_information.rb:15:in `generate_invoice'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:382:in `block in make_lambda'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:207:in `block in halting_and_conditional'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:456:in `block in call'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:456:in `call'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:101:in `__run_callbacks__'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:750:in `_run_create_callbacks'
activerecord (5.0.7.2) lib/active_record/callbacks.rb:302:in `_create_record'
activerecord (5.0.7.2) lib/active_record/timestamp.rb:68:in `_create_record'
activerecord (5.0.7.2) lib/active_record/persistence.rb:548:in `create_or_update'
activerecord (5.0.7.2) lib/active_record/callbacks.rb:298:in `block in create_or_update'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:126:in `call'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:506:in `block (2 levels) in compile'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:455:in `call'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:101:in `__run_callbacks__'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:750:in `_run_save_callbacks'
activerecord (5.0.7.2) lib/active_record/callbacks.rb:298:in `create_or_update'
activerecord (5.0.7.2) lib/active_record/persistence.rb:129:in `save'
activerecord (5.0.7.2) lib/active_record/validations.rb:44:in `save'
activerecord (5.0.7.2) lib/active_record/attribute_methods/dirty.rb:22:in `save'
activerecord (5.0.7.2) lib/active_record/transactions.rb:319:in `block (2 levels) in save'
activerecord (5.0.7.2) lib/active_record/transactions.rb:395:in `block in with_transaction_returning_status'
activerecord (5.0.7.2) lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `block in transaction'
activerecord (5.0.7.2) lib/active_record/connection_adapters/abstract/transaction.rb:189:in `within_new_transaction'
activerecord (5.0.7.2) lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `transaction'
activerecord (5.0.7.2) lib/active_record/transactions.rb:211:in `transaction'
activerecord (5.0.7.2) lib/active_record/transactions.rb:392:in `with_transaction_returning_status'
activerecord (5.0.7.2) lib/active_record/transactions.rb:319:in `block in save'
activerecord (5.0.7.2) lib/active_record/transactions.rb:334:in `rollback_active_record_state!'
activerecord (5.0.7.2) lib/active_record/transactions.rb:318:in `save'
activerecord (5.0.7.2) lib/active_record/suppressor.rb:41:in `save'
bullet (5.5.0) lib/bullet/active_record5.rb:5:in `save'
app/controllers/dashboard/innkeeper_billing_informations_controller.rb:16:in `create'
actionpack (5.0.7.2) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
actionpack (5.0.7.2) lib/abstract_controller/base.rb:188:in `process_action'
actionpack (5.0.7.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (5.0.7.2) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:126:in `call'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:506:in `block (2 levels) in compile'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:455:in `call'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
() var/lib/gems/2.5.0/bundler/gems/route_translator-9d3350d9574c/lib/route_translator/extensions/action_controller.rb:27:in `set_locale_from_url'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:382:in `block in make_lambda'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:285:in `block in halting'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:447:in `block in around'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:455:in `call'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:101:in `__run_callbacks__'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:90:in `run_callbacks'
actionpack (5.0.7.2) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (5.0.7.2) lib/action_controller/metal/rescue.rb:20:in `process_action'
actionpack (5.0.7.2) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (5.0.7.2) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (5.0.7.2) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (5.0.7.2) lib/active_support/notifications.rb:164:in `instrument'
actionpack (5.0.7.2) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (5.0.7.2) lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
searchkick (2.3.0) lib/searchkick/logging.rb:209:in `process_action'
activerecord (5.0.7.2) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (5.0.7.2) lib/abstract_controller/base.rb:126:in `process'
actionview (5.0.7.2) lib/action_view/rendering.rb:30:in `process'
actionpack (5.0.7.2) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (5.0.7.2) lib/action_controller/metal.rb:262:in `dispatch'
actionpack (5.0.7.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (5.0.7.2) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (5.0.7.2) lib/action_dispatch/journey/router.rb:39:in `block in serve'
actionpack (5.0.7.2) lib/action_dispatch/journey/router.rb:26:in `serve'
actionpack (5.0.7.2) lib/action_dispatch/routing/route_set.rb:727:in `call'
omniauth (1.4.1) lib/omniauth/strategy.rb:186:in `call!'
omniauth (1.4.1) lib/omniauth/strategy.rb:164:in `call'
bullet (5.5.0) lib/bullet/rack.rb:12:in `call'
warden (1.2.9) lib/warden/manager.rb:36:in `block in call'
warden (1.2.9) lib/warden/manager.rb:34:in `call'
rack (2.2.3) lib/rack/etag.rb:27:in `call'
rack (2.2.3) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.3) lib/rack/head.rb:12:in `call'
rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/cookies.rb:613:in `call'
activerecord (5.0.7.2) lib/active_record/migration.rb:553:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
activesupport (5.0.7.2) lib/active_support/callbacks.rb:90:in `run_callbacks'
actionpack (5.0.7.2) lib/action_dispatch/middleware/callbacks.rb:36:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
() var/lib/gems/2.5.0/bundler/gems/better_errors-707ffcf284d8/lib/better_errors/middleware.rb:84:in `protected_app_call'
() var/lib/gems/2.5.0/bundler/gems/better_errors-707ffcf284d8/lib/better_errors/middleware.rb:79:in `better_errors_call'
() var/lib/gems/2.5.0/bundler/gems/better_errors-707ffcf284d8/lib/better_errors/middleware.rb:57:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
web-console (3.4.0) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.4.0) lib/web_console/middleware.rb:28:in `block in call'
web-console (3.4.0) lib/web_console/middleware.rb:18:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.0.7.2) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.0.7.2) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.0.7.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
activesupport (5.0.7.2) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.0.7.2) lib/active_support/tagged_logging.rb:69:in `tagged'
railties (5.0.7.2) lib/rails/rack/logger.rb:24:in `call'
sprockets-rails (3.2.2) lib/sprockets/rails/quiet_assets.rb:13:in `call'
request_store (1.3.2) lib/request_store/middleware.rb:9:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
rack (2.2.3) lib/rack/runtime.rb:22:in `call'
activesupport (5.0.7.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
rack-livereload (0.3.16) lib/rack/livereload.rb:23:in `_call'
rack-livereload (0.3.16) lib/rack/livereload.rb:14:in `call'
actionpack (5.0.7.2) lib/action_dispatch/middleware/static.rb:136:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
rack-cors (0.4.1) lib/rack/cors.rb:81:in `call'
railties (5.0.7.2) lib/rails/engine.rb:522:in `call'
puma (3.7.0) lib/puma/configuration.rb:226:in `call'
puma (3.7.0) lib/puma/server.rb:578:in `handle_request'
puma (3.7.0) lib/puma/server.rb:415:in `process_client'
puma (3.7.0) lib/puma/server.rb:275:in `block in run'
puma (3.7.0) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
The methods are there but I don't understand why it gives me this error
I'm really sorry to ask this when there are a lot of similar posts but none seams to work for me.
/app/controllers/api/v1/musics_controller.rb:
class Api::V1::MusicsController < ApplicationController::API
def index
music = Music.order('created_at DESC');
render json: {status: 'SUCCESS', message:'Loaded articles', data:music},status: :ok
end
end
config/routes.rb:
Rails.application.routes.draw do
namespace 'api' do
namespace 'v1' do
resources :music
end
end
end
Error:
activesupport (5.1.2) lib/active_support/inflector/methods.rb:271:in
const_get' activesupport (5.1.2)
lib/active_support/inflector/methods.rb:271:inblock in constantize'
activesupport (5.1.2) lib/active_support/inflector/methods.rb:267:in
each' activesupport (5.1.2)
lib/active_support/inflector/methods.rb:267:ininject' activesupport
(5.1.2) lib/active_support/inflector/methods.rb:267:in constantize'
actionpack (5.1.2) lib/action_dispatch/http/request.rb:82:in
controller_class' actionpack (5.1.2)
lib/action_dispatch/routing/route_set.rb:43:in controller' actionpack
(5.1.2) lib/action_dispatch/routing/route_set.rb:29:inserve'
actionpack (5.1.2) lib/action_dispatch/journey/router.rb:46:in block
in serve' actionpack (5.1.2)
lib/action_dispatch/journey/router.rb:33:ineach' actionpack (5.1.2)
lib/action_dispatch/journey/router.rb:33:in serve' actionpack (5.1.2)
lib/action_dispatch/routing/route_set.rb:832:incall' rack (2.0.3)
lib/rack/etag.rb:25:in call' rack (2.0.3)
lib/rack/conditional_get.rb:25:incall' rack (2.0.3)
lib/rack/head.rb:12:in call' rack (2.0.3)
lib/rack/session/abstract/id.rb:232:incontext' rack (2.0.3)
lib/rack/session/abstract/id.rb:226:in call' actionpack (5.1.2)
lib/action_dispatch/middleware/cookies.rb:613:incall' activerecord
(5.1.2) lib/active_record/migration.rb:556:in call' actionpack
(5.1.2) lib/action_dispatch/middleware/callbacks.rb:26:inblock in
call' activesupport (5.1.2) lib/active_support/callbacks.rb:97:in
run_callbacks' actionpack (5.1.2)
lib/action_dispatch/middleware/callbacks.rb:24:incall' actionpack
(5.1.2) lib/action_dispatch/middleware/executor.rb:12:in call'
actionpack (5.1.2)
lib/action_dispatch/middleware/debug_exceptions.rb:59:incall'
actionpack (5.1.2)
lib/action_dispatch/middleware/show_exceptions.rb:31:in call'
railties (5.1.2) lib/rails/rack/logger.rb:36:incall_app' railties
(5.1.2) lib/rails/rack/logger.rb:24:in block in call' activesupport
(5.1.2) lib/active_support/tagged_logging.rb:69:inblock in tagged'
activesupport (5.1.2) lib/active_support/tagged_logging.rb:26:in
tagged' activesupport (5.1.2)
lib/active_support/tagged_logging.rb:69:intagged' railties (5.1.2)
lib/rails/rack/logger.rb:24:in call' actionpack (5.1.2)
lib/action_dispatch/middleware/remote_ip.rb:79:incall' actionpack
(5.1.2) lib/action_dispatch/middleware/request_id.rb:25:in call' rack
(2.0.3) lib/rack/method_override.rb:22:incall' rack (2.0.3)
lib/rack/runtime.rb:22:in call' activesupport (5.1.2)
lib/active_support/cache/strategy/local_cache_middleware.rb:27:in
call' actionpack (5.1.2)
lib/action_dispatch/middleware/executor.rb:12:in call' actionpack
(5.1.2) lib/action_dispatch/middleware/static.rb:125:incall' rack
(2.0.3) lib/rack/sendfile.rb:111:in call' railties (5.1.2)
lib/rails/engine.rb:522:incall' puma (3.9.1)
lib/puma/configuration.rb:224:in call' puma (3.9.1)
lib/puma/server.rb:602:inhandle_request' puma (3.9.1)
lib/puma/server.rb:435:in process_client' puma (3.9.1)
lib/puma/server.rb:299:inblock in run' puma (3.9.1)
lib/puma/thread_pool.rb:120:in `block in spawn_thread'
You have two options: to change your resources to the plural way :musics (which is recommended) or to change the name of your controller and all the files related (routes, directories, controller class) to the singular way.
In the code you've provided you need to specify your resources route in the plural way, that's why Rails says it doesn't find the API::V1::MusicController, because your controller is called MusicsController, try just adding the missing s to your route:
Rails.application.routes.draw do
namespace 'api' do
namespace 'v1' do
resources :musics
end
end
end
Hey all so Im creating an Api for my rails app to use with an android client but when im setting up the api im getting this error:
"uninitialized constant API::CoursesController"
app/controllers/api/courses_controller.rb
class API::CoursesController < ApplicationController::Base
courses = Course.all
render json: courses, status: 200
end
routes.rb
Rails.application.routes.draw do
resources :courses
resources :categories
resources :quizzes
resources :quiz_questions
resources :quiz_answers
namespace :api do
resources :courses
end
end
config/initializers/inflections.rb
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'API'
end
when I go to the link http://localhost:3000/api/courses I get this:
uninitialized constant API::CoursesController
Rails.root: /Users/faisalchoura/Documents/uni/rocket/server
activesupport (4.2.3) lib/active_support/inflector/methods.rb:276:in `const_get'
activesupport (4.2.3) lib/active_support/inflector/methods.rb:276:in `block in constantize'
activesupport (4.2.3) lib/active_support/inflector/methods.rb:259:in `each'
activesupport (4.2.3) lib/active_support/inflector/methods.rb:259:in `inject'
activesupport (4.2.3) lib/active_support/inflector/methods.rb:259:in `constantize'
actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:72:in `controller_reference'
actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:62:in `controller'
actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:41:in `serve'
actionpack (4.2.3) lib/action_dispatch/journey/router.rb:43:in `block in serve'
actionpack (4.2.3) lib/action_dispatch/journey/router.rb:30:in `each'
actionpack (4.2.3) lib/action_dispatch/journey/router.rb:30:in `serve'
actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:821:in `call'
rack (1.6.4) lib/rack/etag.rb:24:in `call'
rack (1.6.4) lib/rack/conditionalget.rb:25:in `call'
rack (1.6.4) lib/rack/head.rb:13:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/flash.rb:260:in `call'
rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/cookies.rb:560:in `call'
activerecord (4.2.3) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.2.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
activerecord (4.2.3) lib/active_record/migration.rb:377:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.3) lib/active_support/callbacks.rb:84:in `run_callbacks'
actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.3) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.3) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.3) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.3) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.4) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.4) lib/rack/lock.rb:17:in `call'
actionpack (4.2.3) lib/action_dispatch/middleware/static.rb:116:in `call'
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
railties (4.2.3) lib/rails/engine.rb:518:in `call'
railties (4.2.3) lib/rails/application.rb:165:in `call'
rack (1.6.4) lib/rack/lock.rb:17:in `call'
rack (1.6.4) lib/rack/content_length.rb:15:in `call'
rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
/Users/faisalchoura/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
/Users/faisalchoura/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
/Users/faisalchoura/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'
Can you help me please I've been stuck on this for a while now
Thanks!
Namespaces should be done with modules.
module API
class CoursesController < ApplicationController::Base
end
end
Just realized it was a silly mistake completely forgot to put the code in the index method and just left it in the class.
this
class API::CoursesController < ApplicationController
def index
courses = Course.all
render json: courses, status: 200
end
end
solved the problem
UPDATE --
I would recommend skipping direct to answer section -- goal of this was to allow multiple subdomains, each of which would have their own users/registrants. A registrant could register on multiple subdomains, however each subdomain is treated independently and unassociated with the others.
I feel this questions is still in need of a better answer so please contribute to it.
===============
ORIGINAL POST --
Help please --
scenario --
My site is used by :teams, each of which has :users. Im trying to enable :users to log in via the :team subdomain. (unique USER index keys are :email and :team_id -- the subdomain is part of a separate TEAM model that im trying to associate by :team_id in the user model during signin.)
TEAM MODEL
has_many :users
USER MODEL
devise request_keys: [:team_id]
belongs_to :team
def self.find_for_authentication(warden_conditions)
where(:email => warden_conditions[:email], :team_id => warden_conditions[:team_id]).first
end
this is per the new instruction on devise wiki: https://github.com/plataformatec/devise/wiki/How-to:-Scope-login-to-subdomain
APPLICATION CONTROLLER
I use before_action to set the team based on subdomain
I also add the strong params the "lazy" way for team_id / devise_parameter_sanitizer.for(:sign_in) << :team_id
DEVISE SESSIONS NEW VIEW (For USERS)
I feel dirty doing this, but I have a hidden team_id input field
AND THE ERROR DUMP NoMethodError undefined method team_id
Started POST "/users/sign_in" for 111.0.0.1 at 2013-09-13 13:08:09 -0400
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"LONG TOKEN HERE=", "user"=>{"email"=>"user#site.com", "password"=>"[FILTERED]", "remember_me"=>"0"}, "team_id"=>"16", "commit"=>"Sign in"}
[1m[35mTeam Load (0.2ms)[0m SELECT "teams".* FROM "teams" WHERE "teams"."subdomain" = 'teamname' LIMIT 1
Completed 500 Internal Server Error in 119ms
NoMethodError (undefined method `team_id' for #<ActionDispatch::Request:0x007ffe950c2150>):
devise (3.1.0) lib/devise/strategies/authenticatable.rb:142:in `block in request_values'
devise (3.1.0) lib/devise/strategies/authenticatable.rb:142:in `map'
devise (3.1.0) lib/devise/strategies/authenticatable.rb:142:in `request_values'
devise (3.1.0) lib/devise/strategies/authenticatable.rb:122:in `with_authentication_hash'
devise (3.1.0) lib/devise/strategies/authenticatable.rb:71:in `valid_for_params_auth?'
devise (3.1.0) lib/devise/strategies/authenticatable.rb:16:in `valid?'
warden (1.2.3) lib/warden/proxy.rb:351:in `block in _run_strategies_for'
warden (1.2.3) lib/warden/proxy.rb:349:in `each'
warden (1.2.3) lib/warden/proxy.rb:349:in `_run_strategies_for'
warden (1.2.3) lib/warden/proxy.rb:319:in `_perform_authentication'
warden (1.2.3) lib/warden/proxy.rb:127:in `authenticate!'
devise (3.1.0) app/controllers/devise/sessions_controller.rb:15:in `create'
actionpack (4.0.0) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (4.0.0) lib/abstract_controller/base.rb:189:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (4.0.0) lib/active_support/callbacks.rb:463:in `_run__412684316733059520__process_action__callbacks'
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:17:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/rescue.rb:29:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action'
activesupport (4.0.0) lib/active_support/notifications.rb:159:in `block in instrument'
activesupport (4.0.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument'
activesupport (4.0.0) lib/active_support/notifications.rb:159:in `instrument'
actionpack (4.0.0) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (4.0.0) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
activerecord (4.0.0) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (4.0.0) lib/abstract_controller/base.rb:136:in `process'
actionpack (4.0.0) lib/abstract_controller/rendering.rb:44:in `process'
actionpack (4.0.0) lib/action_controller/metal.rb:195:in `dispatch'
actionpack (4.0.0) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
actionpack (4.0.0) lib/action_controller/metal.rb:231:in `block in action'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:80:in `call'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:80:in `dispatch'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:48:in `call'
actionpack (4.0.0) lib/action_dispatch/routing/mapper.rb:44:in `call'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:71:in `block in call'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `each'
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `call'
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:655:in `call'
warden (1.2.3) lib/warden/manager.rb:35:in `block in call'
warden (1.2.3) lib/warden/manager.rb:34:in `catch'
warden (1.2.3) lib/warden/manager.rb:34:in `call'
rack (1.5.2) lib/rack/etag.rb:23:in `call'
rack (1.5.2) lib/rack/conditionalget.rb:35:in `call'
rack (1.5.2) lib/rack/head.rb:11:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:27:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/flash.rb:241:in `call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context'
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/cookies.rb:486:in `call'
activerecord (4.0.0) lib/active_record/query_cache.rb:36:in `call'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call'
activerecord (4.0.0) lib/active_record/migration.rb:369:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__1066722413265567725__call__callbacks'
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
railties (4.0.0) lib/rails/engine.rb:511:in `call'
railties (4.0.0) lib/rails/application.rb:97:in `call'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:145:in `handle'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:99:in `rescue in block (2 levels) in start'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:96:in `block (2 levels) in start'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:86:in `each'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:86:in `block in start'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:66:in `loop'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:66:in `start'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:13:in `run'
/Users/Home/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/bin/nack_worker:4:in `<main>'
Help is much appreciated. Thanks!
Here is how i resolved --
I followed the instructions here exactly: https://github.com/plataformatec/devise/wiki/How-to:-Scope-login-to-subdomain
To use these instructions i added the subdomain column to the users table (creating a lot of duplicate subdomains since each team has_many users).
Then in my Team controller when i update a team subdomain it also creates a query to gather all the users associated with the team to update their subdomain values as well. Not the ideal fix but works well enough.
UPDATE
I hope someone finds a better way -- in mean time i'll make a small addition to this. in order for the same email to work across multiple subdomains you need to add the below in your user model. Otherwise the same email will only be registered for 1 subdomain and any registrations on other subdomains will give you the email is already registered error.
validates_uniqueness_of :email, :scope => :subdomain
For this to work you need to remove :validatable from the devise options in your user model and create your own custom validations for email and passwords.
It's not necessary to add column "subdomain" in DB-table. For example in my case I need provide authentication from "www" only for clients, and from "account" only for partners.
def self.find_for_authentication(conditions)
subdomain = conditions.delete(:subdomain)
if user = super
case subdomain
when 'www'
user.client? ? user : nil
when 'account'
user.partner? ? user : nil
else
nil
end
end
end
I guess this approach more simple.
I believe this is actually a bug related to a change in the way ActionDispatch::Request works.
Devise seems to be assuming that if it calls a key on the request hash it will get nil if the value doesn't exist and will get the value otherwise.
It attempts to access the request with .send which doesn't seem to work in the current version of rails. If you patch devise like so:
diff --git a/lib/devise/strategies/authenticatable.rb b/lib/devise/strategies/authenticatable.rb
index 13249e8..df28fc9 100644
--- a/lib/devise/strategies/authenticatable.rb
+++ b/lib/devise/strategies/authenticatable.rb
## -148,7 +148,7 ## module Devise
def request_values
keys = request_keys.respond_to?(:keys) ? request_keys.keys : request_keys
- values = keys.map { |k| self.request.send(k) }
+ values = keys.map { |k| self.request[k] }
Hash[keys.zip(values)]
end
it seems to work fine.
Edit: I wrote up a partial patch with a few more details here:
https://github.com/plataformatec/devise/pull/3965
I am having an issue were I keep getting this timeout for Faraday. I don't know what the issue is. I could really use some help here. This failing on a redirect. I am not sure what is causing the issue. I have been trying to fix this for 4 whole days and nothing seems to work. There is very little documentation on Faraday so I am hoping that someone has seen this before.
Is anyone able to help with this error? Is more information needed?
Faraday::Error::TimeoutError (Timeout::Error):
/usr/lib/ruby/1.9.1/net/protocol.rb:146:in `rescue in rbuf_fill'
/usr/lib/ruby/1.9.1/net/protocol.rb:140:in `rbuf_fill'
/usr/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'
/usr/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'
/usr/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'
/usr/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'
/usr/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'
/usr/lib/ruby/1.9.1/net/http.rb:1316:in `catch'
/usr/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'
/usr/lib/ruby/1.9.1/net/http.rb:1293:in `request'
rest-client (1.6.7) lib/restclient/net_http_ext.rb:51:in `request'
/usr/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'
/usr/lib/ruby/1.9.1/net/http.rb:745:in `start'
/usr/lib/ruby/1.9.1/net/http.rb:1284:in `request'
rest-client (1.6.7) lib/restclient/net_http_ext.rb:51:in `request'
faraday (0.8.4) lib/faraday/adapter/net_http.rb:74:in `perform_request'
faraday (0.8.4) lib/faraday/adapter/net_http.rb:37:in `call'
faraday (0.8.4) lib/faraday/request/url_encoded.rb:14:in `call'
faraday (0.8.4) lib/faraday/connection.rb:226:in `run_request'
oauth2 (0.8.0) lib/oauth2/client.rb:88:in `request'
oauth2 (0.8.0) lib/oauth2/client.rb:131:in `get_token'
oauth2 (0.8.0) lib/oauth2/strategy/auth_code.rb:29:in `get_token'
omniauth-oauth2 (1.1.0) lib/omniauth/strategies/oauth2.rb:100:in `build_access_token'
omniauth-oauth2 (1.1.0) lib/omniauth/strategies/oauth2.rb:75:in `callback_phase'
omniauth (1.1.1) lib/omniauth/strategy.rb:219:in `callback_call'
omniauth (1.1.1) lib/omniauth/strategy.rb:175:in `call!'
omniauth (1.1.1) lib/omniauth/strategy.rb:157:in `call'
omniauth (1.1.1) lib/omniauth/strategy.rb:177:in `call!'
omniauth (1.1.1) lib/omniauth/strategy.rb:157:in `call'
airbrake (3.1.7) lib/airbrake/rails/middleware.rb:15:in `call'
exception_notification (2.6.1) lib/exception_notifier.rb:34:in `call'
warden (1.2.1) lib/warden/manager.rb:35:in `block in call'
warden (1.2.1) lib/warden/manager.rb:34:in `catch'
warden (1.2.1) lib/warden/manager.rb:34:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.4.5) lib/rack/etag.rb:23:in `call'
rack (1.4.5) lib/rack/conditionalget.rb:25:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/head.rb:14:in `call'
remotipart (1.0.5) lib/remotipart/middleware.rb:30:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/flash.rb:242:in `call'
rack (1.4.5) lib/rack/session/abstract/id.rb:210:in `context'
rack (1.4.5) lib/rack/session/abstract/id.rb:205:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/cookies.rb:341:in `call'
activerecord (3.2.11) lib/active_record/query_cache.rb:64:in `call'
activerecord (3.2.11) lib/active_record/connection_adapters/abstract/connection_pool.rb:479:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `_run__2705598145907853404__call__3655850838898635033__callbacks'
activesupport (3.2.11) lib/active_support/callbacks.rb:405:in `__run_callback'
activesupport (3.2.11) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
activesupport (3.2.11) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (3.2.11) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
rack (1.4.5) lib/rack/runtime.rb:17:in `call'
activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.4.5) lib/rack/lock.rb:15:in `call'
rack-cache (1.2) lib/rack/cache/context.rb:136:in `forward'
rack-cache (1.2) lib/rack/cache/context.rb:245:in `fetch'
rack-cache (1.2) lib/rack/cache/context.rb:185:in `lookup'
rack-cache (1.2) lib/rack/cache/context.rb:66:in `call!'
rack-cache (1.2) lib/rack/cache/context.rb:51:in `call'
airbrake (3.1.7) lib/airbrake/user_informer.rb:16:in `_call'
airbrake (3.1.7) lib/airbrake/user_informer.rb:12:in `call'
railties (3.2.11) lib/rails/engine.rb:479:in `call'
railties (3.2.11) lib/rails/application.rb:223:in `call'
railties (3.2.11) lib/rails/railtie/configurable.rb:30:in `method_missing'
/usr/lib/ruby/1.9.1/phusion_passenger/rack/request_handler.rb:96:in `process_request'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_request_handler.rb:516:in `accept_and_process_next_request'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
/usr/lib/ruby/1.9.1/phusion_passenger/rack/application_spawner.rb:206:in `start_request_handler'
/usr/lib/ruby/1.9.1/phusion_passenger/rack/application_spawner.rb:171:in `block in handle_spawn_application'
/usr/lib/ruby/1.9.1/phusion_passenger/utils.rb:470:in `safe_fork'
/usr/lib/ruby/1.9.1/phusion_passenger/rack/application_spawner.rb:166:in `handle_spawn_application'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_server.rb:180:in `start'
/usr/lib/ruby/1.9.1/phusion_passenger/rack/application_spawner.rb:129:in `start'
/usr/lib/ruby/1.9.1/phusion_passenger/spawn_manager.rb:253:in `block (2 levels) in spawn_rack_application'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
/usr/lib/ruby/1.9.1/phusion_passenger/spawn_manager.rb:246:in `block in spawn_rack_application'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_server_collection.rb:82:in `block in synchronize'
<internal:prelude>:10:in `synchronize'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
/usr/lib/ruby/1.9.1/phusion_passenger/spawn_manager.rb:244:in `spawn_rack_application'
/usr/lib/ruby/1.9.1/phusion_passenger/spawn_manager.rb:137:in `spawn_application'
/usr/lib/ruby/1.9.1/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
/usr/lib/ruby/1.9.1/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
/usr/share/phusion-passenger/helper-scripts/passenger-spawn-server:99:in `<main>'
If you need more information on what's happening, you can make faraday log to stdout, which means you can see what's happening and what http calls are being made. The error is happening with OAuth2, so you need to look into why it's timing out.
I'd recommend you run this on your repo:
bundle install --path vendor/bundle
Then, go into the vendor/bundle folder, into the oauth2 folder, and add the line
connection.response :logger if ENV['DEBUG']
to client.rb, within the def request(verb, url, opts={}) method.
Then, whatever command you are using to run phusion-passenger add DEBUG=true to the start of it.
Long answer I know, but should help diagnose what the faraday issue is!