Kullanıcı modelimdeki e-posta adresini kimlik olarak kullanmak için to_param'ı geçersiz kılmaya çalıştığımda rotalarımda bir hata alıyorum. Rotayı eşlemeye çalışırken kimliği için tüm nesneyi eşleştirmeye çalışıyor gibi görünüyor. Neyi kaçırdığımı anlamaya yardımcı olan var mı?Raylar 3.0: modeldeki to_param'ı geçersiz kıldığınızda yollar ile ilgili hata
İşte hata var:
No route matches {:controller=>"users", :action=>"show", :id=>#<User id: 1, email: ....>}
Burada kodunuzu kurduktan nasıl.
modeller/user.rb:
attr_accessible :email
def to_param
email
end
kontrolörleri/users_controller.rb:
before_filter :get_user, :only=>[:show,:update,:edit,:destroy]
...
def get_user
@user = User.find_by_email params[:id]
end
yapılandırma burada/routes.rb
resources :users
Ve tırmık yolları çıktısı var:
user GET /users(.:format) {:controller=>"users", :action=>"index"}
POST /users(.:format) {:controller=>"users", :action=>"create"}
new_user GET /users/new(.:format) {:controller=>"users", :action=>"new"}
edit_user GET /users/:id/edit(.:format) {:controller=>"users", :action=>"edit"}
user GET /users/:id(.:format) {:controller=>"users", :action=>"show"}
PUT /users/:id(.:format) {:controller=>"users", :action=>"update"}
DELETE /users/:id(.:format) {:controller=>"users", :action=>"destroy"}
Eğer bu hataya lütfen açar, bağlantı göstermektedir.Tüm kodunuz doğru, bu yüzden hata bağlantınız – fl00r
'dur. Sorun şu an gösterilmekte, düzenlenmekte, güncellenmekte ve yolları imha edilmektedir. Bu yüzden ya tarayıcıda (/users/[email protected] adresindeki yola gitmeye veya görünümde link_to çağırarak <% = link_to "Göster", kullanıcı%> veya <% = link_to "Düzenle" gibi) gezinmeye çalışın. , edit_user_path (user)%> – Bee