2

路线.rb:

devise_for :users, :controllers => {
  :registrations => 'users',
  :sessions => 'sessions',
  :confirmations => 'confirmations',
  :passwords => 'passwords'
}

“编辑”操作的视图:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= resource.inspect %>

resource.inspect 将所有用户的字段显示为 nil。

控制器:

def edit
  resource = params[:id].nil? ? current_user : User.find_by_id(params[:id])
end

放什么而不是“资源=”来使这件事起作用?我希望视图保留默认的“resource”和“resource_name”变量。

重要提示:我宁愿保留编辑方法的默认行为,而不覆盖它,也不为它编写自己的代码。

4

0 回答 0