次の form_for タグがあります。プロファイルには生成中の URL が含まれていますが、有効ではありません。つまり、タグは次のとおりです。
<%= form_for([current_user,@profile], :html =>{:class => "contact_form",:multipart => true}) do |f| %>
これは、この「action="/users/1/profile.1」を予測していますが、これは action="/users/1/profile/1" である必要があります
ここで私が間違っていることを誰かが見ることができますか?
以下は、関連する rails ファイルのスナップショットです。
ルート.rb
devise_for :users
resources :users, :only => [:delete] do
resource :profile
end
ユーザーモデル
class User < ActiveRecord::Base
has_one :profile, :inverse_of => :user
accepts_nested_attributes_for :profile
プロファイル モデル
class Profile < ActiveRecord::Base
belongs_to :user
validates_presence_of :user
rake ルートの出力:
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