0

has_one user_profile と User_Profile belongs_to ユーザーを持つモデル User があります

私が持っているユーザーコントローラで:

  def personal
    @user = User.find_by_id(params[:id])
    @user_profile = @user.user_profile
    @user_profile ||= @user.build_user_profile
  end

  def update_personal
    @user = User.find_by_id(params[:id])
    if @user.user_profile.update_attributes(params[:user_profile])
      flash[:notice] = "OK"
      redirect_to @user
    else
      flash[:notice] = "Fail"
      render :action => 'update_personal'
    end
  end

私の personal.html.erb ビューには次のものがあります。

<% semantic_form_for @user_profile, :url => { :action => "update_personal"} do |form| %>
  <%= form.inputs %>
  <%=  form.buttons %>
<%end%>

そして、私が持っているラウンドで:

map.resources :users, :member => {
         :personal            => :get,
         :update_personal     => :put
        }

今奇妙なことは、私ができることです:

users/1/personal 

フォームを表示しますが、送信すると次のエラーが発生します。

Unknown action

No action responded to 1.

1 という名前のアクションを見つけようとしています。

誰かが正しい方向に私を指摘できますか?

4

1 に答える 1

0

再び問題が発生し、最終的に問題を理解し、解決策を見つけました。

今回は getJason を使用した ajax 呼び出しを使用していました。呼び出しは get であり、私のルートでは update_xxxxxx => :put があったため、ルートは無視され、デフォルトの :controller/:action/:id が使用されました。

update_xxxx => :get を置くだけで問題は解決しました。

多分これは誰かを助けるでしょう。

于 2010-05-17T23:54:41.903 に答える