0

profile/edit.html.erb に次のフォームがあります

<%= form_for @customer, url: {controller: :customer, action: :update} do |f| %>
<%= f.text_field :username, value: @customer.username%>
<%= f.submit 'Update' %>
<% end %>

そして、私の顧客コントローラーには次の方法があります

def edit
    @customer = Customer.find session[:customer_id]
end

def update
      @customer.update(customer_params)
end

private
private
  def customer_params
    params[:customer]
  end

ルートエラーを取得するフォームを送信すると

No route matches [PATCH] "/customer/update"

route.rbに次の行を追加しましたが、同じエラーに直面しています

resources :profiles
  resources :customers
4

3 に答える 3

0

update メソッドを使用する前に、更新アクションで @customer を定義することはありません。更新アクションで次のようなことを試してください。

@customer = Customer.find session[:customer_id]
@customer.update(customer_params)

また、顧客パラメータが正しく設定されていません。フォーム内のアイテムを許可するには、次を使用します。

def profile_params
      params.require(:customer).permit(:username)
end
于 2013-11-07T02:56:46.560 に答える
0

controller: :customer を controller: :customer に変更しますs

于 2013-11-07T02:43:16.793 に答える