2012-04-08 21 views
0

Ich habe folgendes form_for-Tag ist das Profil mit der URL, die es erzeugt, ist es nicht gültig ist, dh hier ist der Tag:Rails 3 - Verschachtelte Ressourcen Generieren einer ungültigen URL über form_for?

<%= form_for([current_user,@profile], :html =>{:class => "contact_form",:multipart => true}) do |f| %> 

, die diese ist die Vorhersage „action =“/users/1/profile.1" die Aktion sein sollte = ‚/ Benutzer/1/profile/1‘

Kann jemand sehen, was ich falsch hier?

Im Folgenden sind einige Schnappschüsse aus den entsprechenden Schienen-Dateien.

routes.rb

devise_for :users 
resources :users, :only => [:delete] do 
    resource :profile 
end 

Benutzermodell

class User < ActiveRecord::Base 
    has_one :profile, :inverse_of => :user 
    accepts_nested_attributes_for :profile 

Profil Modell

class Profile < ActiveRecord::Base 
    belongs_to :user 
    validates_presence_of :user 

Rake Routen Ausgang:

new_user_session GET /users/sign_in(.:format)    devise/sessions#new 
      user_session POST /users/sign_in(.:format)    devise/sessions#create 
    destroy_user_session DELETE /users/sign_out(.:format)    devise/sessions#destroy 
      user_password POST /users/password(.:format)    devise/passwords#create 
     new_user_password GET /users/password/new(.:format)   devise/passwords#new 
     edit_user_password GET /users/password/edit(.:format)   devise/passwords#edit 
         PUT /users/password(.:format)    devise/passwords#update 
cancel_user_registration GET /users/cancel(.:format)    devise/registrations#cancel 
     user_registration POST /users(.:format)      devise/registrations#create 
    new_user_registration GET /users/sign_up(.:format)    devise/registrations#new 
    edit_user_registration GET /users/edit(.:format)     devise/registrations#edit 
         PUT /users(.:format)      devise/registrations#update 
         DELETE /users(.:format)      devise/registrations#destroy 
      user_profile POST /users/:user_id/profile(.:format)  profiles#create 
     new_user_profile GET /users/:user_id/profile/new(.:format) profiles#new 
     edit_user_profile GET /users/:user_id/profile/edit(.:format) profiles#edit 
         GET /users/:user_id/profile(.:format)  profiles#show 
         PUT /users/:user_id/profile(.:format)  profiles#update 
         DELETE /users/:user_id/profile(.:format)  profiles#destroy 

Antwort

0

ich das gleiche Problem hatte. meine Lösung war, dass Sie die URL direkt wie folgt zu erklären haben:

<%= form_for([current_user,@profile], :url => user_profile_path, :html =>{:class => "contact_form",:multipart => true}) do |f| %> 

obwohl ich dieses Ding kommt nicht wirklich wissen, warum - vielleicht könnte jemand erklären ...

Verwandte Themen