ruby on rails - القضبان مكتملة 406 غير مقبول في 64ms



ruby-on-rails ruby-on-rails-3 (1)

406 يحدث عندما يكون نوع المحتوى الذي تطلبه ليس أحد الإجراءات التي تعرف كيفية الرد عليها. على سبيل المثال، إذا كان إجراء يستجيب ل هتمل و جسون، ولكنك تطلب جس، فلن تعرف كيفية الرد.

إذا لم أكن مخطئا، وسوف تفعل هذا العمل، ولكن عندما يحين الوقت للرد عليه سوف يرسل 406 مرة أخرى.

لا أرى أي تنسيقات محددة في وحدة التحكم الخاصة بك، ولكن ربما يكون لديك محددة في الجزء العلوي مع respond_to ، أو ربما أنا ننسى شيئا عن السلوك الافتراضي.

يبدو أنك تطلب من جس - كتجربة، محاولة لف هذا حول الإجراء بأكمله:

respond_to do |format|
  format.js do
    # all your action code goes here...
  end
end

لدي نموذج على موقع الويب الخاص بي يحتوي على صفحة حيث يمكنني تحرير / إزالة / إضافة صناديق البريد:

كلما أفعل شيئا إلى علبة البريد (التحديث، تدمير) أنا الحصول على هذا الخطأ:

تمت إعادة توجيهك إلى http://example.com/ تم إجراؤه 406 غير مقبول في 64 مللي ثانية

ولكن يتم تحديث البيانات.

إليك شفرة وحدة التحكم:

# PUT /mailboxes/1
def update
  @mailbox = Mailbox.find(params[:id])

  if @mailbox.update_attributes(params[:mailbox])
    redirect_to(root_path, :notice => 'Mailbox was successfully updated.')
  else
    render :action => "edit"
  end
end

# DELETE /mailboxes/1
def destroy
  @mailbox = Mailbox.find(params[:id])
  @mailbox.destroy

  redirect_to(root_path)
end

وهنا road.rb المعلومات:

match 'settings.js' => 'settings#javascript', :via => :get, :format => :js
scope '/settings' do

  # Directs /settings/mailboxes/* to Settings::MailboxesController
  # (app/controllers/settings/mailboxes_controller.rb)
  resources :mailboxes     
end

ما الخطأ الذي افعله؟ وإليك ما يظهر السجل:

if @mailbox.update_attributes(params[:mailbox])
(rdb:2) response.status
200
(rdb:2) next
/Users/Fallen/Projects/support-app/trunk/app/controllers/mailboxes_controller.rb:65
redirect_to(mailboxes_path, :notice => 'Mailbox was successfully updated.') 
(rdb:2) response.status
200
(rdb:2) next
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.0/lib/action_controller/metal/implicit_render.rb:5
default_render unless response_body
(rdb:2) response_body
[" "]
(rdb:2) response.status
406
(rdb:2) cont


Started PUT "/settings/mailboxes/5" for 127.0.0.1 at 2011-10-14 12:54:38 +0200
  Status Load (0.4ms)  SELECT `statuses`.* FROM `statuses` WHERE `statuses`.`name` = 'Incoming emails fetching' LIMIT 1
   (0.1ms)  BEGIN
   (0.4ms)  UPDATE `statuses` SET `last_action_at` = '2011-10-14 10:54:38' WHERE `statuses`.`id` = 1
   (39.6ms)  COMMIT
  Processing by MailboxesController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"0cip2dsYre9anfy/8rEgtuYcgrgC3si6aSuppjzxuHU=", "mailbox"=>{"name"=>"Dev Support #4", "sender_name"=>"example.com Support #4", "email_address"=>"[email protected]", "color"=>"B2EB3D"}, "commit"=>"Update Mailbox", "id"=>"5"}
  Mailbox Load (0.5ms)  SELECT `mailboxes`.* FROM `mailboxes` WHERE `mailboxes`.`id` = 5 LIMIT 1
  Status Load (0.5ms)  SELECT `statuses`.* FROM `statuses` WHERE `statuses`.`name` = 'Incoming emails fetching' LIMIT 1
   (0.1ms)  BEGIN
   (0.3ms)  UPDATE `statuses` SET `last_action_at` = '2011-10-14 10:54:47' WHERE `statuses`.`id` = 1
   (0.4ms)  COMMIT
   (0.2ms)  BEGIN
   (0.6ms)  UPDATE `mailboxes` SET `color` = 'B2EB3D', `updated_at` = '2011-10-14 10:54:48' WHERE `mailboxes`.`id` = 5
  Mailbox Load (0.7ms)  SELECT `mailboxes`.* FROM `mailboxes` 
   (1.2ms)  COMMIT
  Mailbox Load (0.4ms)  SELECT id, name, open_tickets_count FROM `mailboxes` 
   (0.3ms)  SELECT COUNT(*) FROM `tickets` WHERE `tickets`.`closed` = 0
  CACHE (0.0ms)  SELECT COUNT(*) FROM `tickets` WHERE `tickets`.`closed` = 0
Redirected to http://localhost:3000/settings/mailboxes
Completed 406 Not Acceptable in 29008ms




routes