ネストされたリソースのルーティングに問題があります。私がやろうとしているのは、編集目的でユーザーのプロファイルページにリンクすることです。私の見解では、それは次のように書かれています:
<%= link_to "Edit Profile", edit_user_profile_path(current_user) %>
どのエラーが発生しますか:
No route matches {:action=>"edit", :controller=>"profiles", :user_id=>#<User id: 1, email: "EDITEDOUT", hashed_password: "EDITEDOUT", created_at: "2011-01-20 18:30:44", updated_at: "2011-01-20 18:30:44">}
私のroutes.rbファイルでは、次のようになっています。
resources :users do
resources :profiles, :controller => "profiles"
end
私は自分のレーキルートをチェックしました、そしてそれは私にこれを有効なオプションとして与えました:
edit_user_profile GET /users/:user_id/profiles/:id/edit(.:format) {:action=>"edit", :controller=>"profiles"}
手動で移動できます。適切な対策として、これが私のコントローラーの証明です。
class ProfilesController < ApplicationController
def edit
@user = current_user
@profile = current_user.profile
end
def update
@user = current_user
@profile = current_user.profile
respond_to do |format|
if @profile.update_attributes(params[:profile])
format.html { redirect_to(orders_path, :notice => "Your profile has been updated.") }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @profile.errors, :status => :unprocessable_entity }
end
end
end
end
とにかく、私はこれを追跡するのにいくつかの問題を抱えています。どんなポインタでも役に立ちます。私のDB設計では、プロファイルは1対1の関係にあるユーザーに属しています。私はそれがちょうど新しいものであることを望んでいます私は新しい目のセットが役立つかもしれないことに気づいていません。