I am using rails 4.1.
I have a custom controller. I configured the routes with:
resources :chats
I am trying to make a post request to a 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
@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 of 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 that:
ArgumentError - (1 0): activesupport (4.1.1) lib/active_support/callbacks.rb: 80: in run_callbacks'
actionpack (4.1.1) lib/abstract_controller/callbacks.rb:19:in process_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:in block 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:in instrument ' activesupport (4.1.1) lib/active_support/notifications.rb: 159: in instrument'
actionpack (4.1.1) lib/action_controller/metal/instrumentation.rb:30:in process_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:in process_action ' actionpack (4.1.1) lib/abstract_controller/base.rb: 136: in process'
actionview (4.1.1) lib/action_view/rendering.rb:30:in process ' actionpack (4.1.1) lib/action_controller/metal.rb: 195: in dispatch'
actionpack (4.1.1) lib/action_controller/metal/rack_delegation.rb:13:in ' 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:in ' 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:in block in call ' actionpack (4.1.1) lib/action_dispatch/travel/router.rb: 59: in call'
actionpack (4.1.1) lib/action_dispatch/routing/route_set.rb:676:in call ' rack-pjax (0.7.0) lib/rack/pjax.rb: 12: 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 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 ' remotipart (1.2.1) lib/remotipart/middleware.rb: 27: in call'
actionpack (4.1.1) lib/action_dispatch/middleware/params_parser.rb:27:in call ' actionpack (4.1.1) lib/action_dispatch/middleware/flash.rb: 254: in call'
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in context ' (1.5.2) lib/rack/session/abstract/id.rb: 220: in call'
actionpack (4.1.1) lib/action_dispatch/middleware/cookies.rb:560:in call ' 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:in call ' activerecord (4.1.1) lib/active_record/migration.rb: 380: in call'
actionpack (4.1.1) lib/action_dispatch/middleware/callbacks.rb:29:in block 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:in call ' 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:in call ' best_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:in better_errors_call ' best_errors (1.1.0) lib/better_errors/middleware.rb: 56: in call'
actionpack (4.1.1) lib/action_dispatch/middleware/debug_exceptions.rb:17:in call ' actionpack (4.1.1) lib/action_dispatch/middleware/show_exceptions.rb: 30: in call'
railties (4.1.1) lib/rails/rack/logger.rb:38:in call_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:in block 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:in tagged ' raines (4.1.1) lib/rails/rack/logger.rb: 20: in call'
quiet_assets (1.0.2) lib/quiet_assets.rb:18:in call_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:in call ' 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:in call ' rack (1.5.2) lib/rack/lock.rb: 17: in call'
actionpack (4.1.1) lib/action_dispatch/middleware/static.rb:64:in call ' rack (1.5.2) lib/rack/sendfile.rb: 112: in call'
railties (4.1.1) lib/rails/engine.rb:514:in call ' railties (4.1.1) lib/rails/application.rb: 144: in call'
rack (1.5.2) lib/rack/content_length.rb:14:in call ' (1.6.2) lib/thin/connection.rb: 86: in block in pre_process'
thin (1.6.2) lib/thin/connection.rb:84:in pre_process ' (1.6.2) lib/thin/connection.rb: 53: in process'
thin (1.6.2) lib/thin/connection.rb:39:in receive_data ' eventmachine (1.0.3) lib/eventmachine.rb: 187: in run'
thin (1.6.2) lib/thin/backends/base.rb:73:in start ' thin (1.6.2) lib/thin/server.rb: 162: in start'
rack (1.5.2) lib/rack/handler/thin.rb:16:in run ' rack (1.5.2) lib/rack/server.rb: 264: in start'
railties (4.1.1) lib/rails/commands/server.rb:69:in start ' 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:in server ' 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:in debug_program ' ruby-debug-ide (0.4.23.beta1) bin/rdebug-ide: 110: in <top (required)>'
-e:1:in '
? ?