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/settings/mailboxes
- http://example.com/settings/mailboxes/3/edit
- http://example.com/settings/mailboxes/3
- إلخ
كلما أفعل شيئا إلى علبة البريد (التحديث، تدمير) أنا الحصول على هذا الخطأ:
تمت إعادة توجيهك إلى 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