Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails jQuery POST - ArgumentError - wrong number of arguments (1 for 0)?

I am using rails 4.1.

I have setup a custom controller. I have configured the routes with:

resources :chats

I am trying to make a post request to the controller using jQuery. Here is the code:

$.post('/chats/', { session: { advisor_id: $(this).attr('data-id') } }, function (data) {
    eval(data);
});

Edit: And here is the code for my controller -

class ChatsController < ApplicationController

  def create
    #create the new session
    @session = Session.create(:advisor_id => session_params[:advisor_id], :session_type => @session.call!, :client_id => current_user.id)

  end

  private
    def session_params
     params[:session].permit(:advisor_id, :client_id, :session_type)
    end
end

Edit: And here is the code for my model -

class Session < ActiveRecord::Base
  enum session_type: [ :chat, :call ]
  belongs_to :client, :class_name => "User", :foreign_key => :client_id
  belongs_to :advisor, :class_name => "User", :foreign_key => :advisor_id
  has_many :instant_messages

  def self.obj_name(id)
    o = Session.find(id)
    "#{o.client.full_name} and #{o.advisor.full_name}"
  end
end

However it throws an error which is:

ArgumentError - wrong number of arguments (1 for 0): activesupport (4.1.1) lib/active_support/callbacks.rb:80:in run_callbacks' actionpack (4.1.1) lib/abstract_controller/callbacks.rb:19:inprocess_action' actionpack (4.1.1) lib/action_controller/metal/rescue.rb:29:in process_action' actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:31:inblock in process_action' activesupport (4.1.1) lib/active_support/notifications.rb:159:in block in instrument' activesupport (4.1.1) lib/active_support/notifications/instrumenter.rb:20:ininstrument' activesupport (4.1.1) lib/active_support/notifications.rb:159:in instrument' actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:30:inprocess_action' actionpack (4.1.1) lib/action_controller/metal/params_wrapper.rb:250:in process_action' activerecord (4.1.1) lib/active_record/railties/controller_runtime.rb:18:inprocess_action' actionpack (4.1.1) lib/abstract_controller/base.rb:136:in process' actionview (4.1.1) lib/action_view/rendering.rb:30:inprocess' actionpack (4.1.1) lib/action_controller/metal.rb:195:in dispatch' actionpack (4.1.1) lib/action_controller/metal/rack_delegation.rb:13:indispatch' actionpack (4.1.1) lib/action_controller/metal.rb:231:in block in action' actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:80:indispatch' actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:48:in call' actionpack (4.1.1) lib/action_dispatch/journey/router.rb:71:inblock in call' actionpack (4.1.1) lib/action_dispatch/journey/router.rb:59:in call' actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:676:incall' rack-pjax (0.7.0) lib/rack/pjax.rb:12:in call' warden (1.2.3) lib/warden/manager.rb:35:inblock in call' warden (1.2.3) lib/warden/manager.rb:34:in call' rack (1.5.2) lib/rack/etag.rb:23:incall' rack (1.5.2) lib/rack/conditionalget.rb:35:in call' rack (1.5.2) lib/rack/head.rb:11:incall' remotipart (1.2.1) lib/remotipart/middleware.rb:27:in call' actionpack (4.1.1) lib/action_dispatch/middleware/params_parser.rb:27:incall' actionpack (4.1.1) lib/action_dispatch/middleware/flash.rb:254:in call' rack (1.5.2) lib/rack/session/abstract/id.rb:225:incontext' rack (1.5.2) lib/rack/session/abstract/id.rb:220:in call' actionpack (4.1.1) lib/action_dispatch/middleware/cookies.rb:560:incall' activerecord (4.1.1) lib/active_record/query_cache.rb:36:in call' activerecord (4.1.1) lib/active_record/connection_adapters/abstract/connection_pool.rb:621:incall' activerecord (4.1.1) lib/active_record/migration.rb:380:in call' actionpack (4.1.1) lib/action_dispatch/middleware/callbacks.rb:29:inblock in call' activesupport (4.1.1) lib/active_support/callbacks.rb:82:in run_callbacks' actionpack (4.1.1) lib/action_dispatch/middleware/callbacks.rb:27:incall' actionpack (4.1.1) lib/action_dispatch/middleware/reloader.rb:73:in call' actionpack (4.1.1) lib/action_dispatch/middleware/remote_ip.rb:76:incall' better_errors (1.1.0) lib/better_errors/middleware.rb:84:in protected_app_call' better_errors (1.1.0) lib/better_errors/middleware.rb:79:inbetter_errors_call' better_errors (1.1.0) lib/better_errors/middleware.rb:56:in call' actionpack (4.1.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:incall' actionpack (4.1.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in call' railties (4.1.1) lib/rails/rack/logger.rb:38:incall_app' railties (4.1.1) lib/rails/rack/logger.rb:20:in block in call' activesupport (4.1.1) lib/active_support/tagged_logging.rb:68:inblock in tagged' activesupport (4.1.1) lib/active_support/tagged_logging.rb:26:in tagged' activesupport (4.1.1) lib/active_support/tagged_logging.rb:68:intagged' railties (4.1.1) lib/rails/rack/logger.rb:20:in call' quiet_assets (1.0.2) lib/quiet_assets.rb:18:incall_with_quiet_assets' actionpack (4.1.1) lib/action_dispatch/middleware/request_id.rb:21:in call' rack (1.5.2) lib/rack/methodoverride.rb:21:incall' rack (1.5.2) lib/rack/runtime.rb:17:in call' activesupport (4.1.1) lib/active_support/cache/strategy/local_cache_middleware.rb:26:incall' rack (1.5.2) lib/rack/lock.rb:17:in call' actionpack (4.1.1) lib/action_dispatch/middleware/static.rb:64:incall' rack (1.5.2) lib/rack/sendfile.rb:112:in call' railties (4.1.1) lib/rails/engine.rb:514:incall' railties (4.1.1) lib/rails/application.rb:144:in call' rack (1.5.2) lib/rack/content_length.rb:14:incall' thin (1.6.2) lib/thin/connection.rb:86:in block in pre_process' thin (1.6.2) lib/thin/connection.rb:84:inpre_process' thin (1.6.2) lib/thin/connection.rb:53:in process' thin (1.6.2) lib/thin/connection.rb:39:inreceive_data' eventmachine (1.0.3) lib/eventmachine.rb:187:in run' thin (1.6.2) lib/thin/backends/base.rb:73:instart' thin (1.6.2) lib/thin/server.rb:162:in start' rack (1.5.2) lib/rack/handler/thin.rb:16:inrun' rack (1.5.2) lib/rack/server.rb:264:in start' railties (4.1.1) lib/rails/commands/server.rb:69:instart' railties (4.1.1) lib/rails/commands/commands_tasks.rb:81:in block in server' railties (4.1.1) lib/rails/commands/commands_tasks.rb:76:inserver' railties (4.1.1) lib/rails/commands/commands_tasks.rb:40:in run_command!' railties (4.1.1) lib/rails/commands.rb:17:in' bin/rails:8:in <top (required)>' ruby-debug-ide (0.4.23.beta1) lib/ruby-debug-ide.rb:86:indebug_program' ruby-debug-ide (0.4.23.beta1) bin/rdebug-ide:110:in <top (required)>' -e:1:in'

Why is it throwing this error? How can I get it to accept the request?

like image 794
startupsmith Avatar asked Feb 12 '23 16:02

startupsmith


1 Answers

I managed to solve this problem. The issue was that I had an action in the controller called "send". I now know that "send" is a method used in ruby to call other methods.

Here is some more info on the ruby "send" method. What does send() do in Ruby?

like image 186
startupsmith Avatar answered Feb 15 '23 10:02

startupsmith