2013-10-05 26 views
7

Kullanıcı kimlik doğrulaması için Devise 3.1.1 kullanarak Rails 4 uygulamasında çalışıyorum. Ben istisna aşağıdaki atar /users/sign_up.user bağlantı Raylar tıkladığınızda:Raylar 4 Devise 3.1.1 ActionController :: UnknownFormat in Devise :: RegistrationsController # new

ActionController::UnknownFormat in Devise::RegistrationsController#new 
ActionController::UnknownFormat 

Rails.root: /home/rehan/odesk_work/kiefer-waight/ujoin/ujoin-www 

Application Trace | Framework Trace | Full Trace 
actionpack (4.0.0) lib/action_controller/metal/mime_responds.rb:372:in `retrieve_collector_from_mimes' 
actionpack (4.0.0) lib/action_controller/metal/mime_responds.rb:327:in `respond_with' 
devise (3.1.1) app/controllers/devise/registrations_controller.rb:8:in `new' 
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:413:in `_run__890637270__process_action__callbacks' 
.... 

app başladığımda Devise 3.0.0.rc aslında, ben çözebilir 3.1.1 vasiyetle yükseltme düşünce sorun, ama yapmadı. SO/google/devise github projesinde yararlı bir şey bulamadı. Etrafında çalışmak için herhangi bir fikir. Teşekkürler!

cevap

13

Her bağlantı sonunda ".user" ekli olan Devise tarafından üretilen varsayılan bağlantıları değiştirmek istemedim. üretilen aşağıdaki bağlantıları tasarlamak: bu biçimi olarak ".user" kullanımı anlatır link_to yöntemde yoluna parametre olarak, kullanıcı

new_user_registration_path(resource_name) new_user_session_path(resource_name) new_user_password_path(resource_name)

RESOURCE_NAME. Bu yüzden her yoldan resource_name öğesini kaldırdım. Acaba bunu neden yapıyor?

new_registration_path(resource_name) 

new_session_path(resource_name) 

new_password_path(resource_name) 
+0

Ayrıca "resource" ın neden bir parametre olarak gereksinim duyduğunu da bilmiyorum. Benim durumumda çıkardım, parametre ve işe yaradı. –

0

/users/sign_up.user bağlantısını tıklattığınız zaman, tam anlamıyla tam anlamıyla demek istiyor musunuz? Sonunda .user, user biçimini, pdf, xml ya da json biçemlerini deneyin ve yanıtladığını bildiriyor. Bunu kaldır ve ne olduğunu gör.

3

.

çözüm hiçbir _user infix söylemek anlamına Devise varsayılan olanlar için tüm yollar geri etmektir. Biz konsolundaki bu kod test etmek mümkün değildir

Not:

user = User.all.sample 
app.new_registration_path(user) 

Devise kullandıkları için

onun helper biz dışarıdan test edemez böylece otomatik olarak dahili url dönüştürmek için.

1

Sadece bu sorunu çözdüm: Ayrıca _User Infix olmadan fonksiyonları olabilir zeeshan cevabı eserleri @