,我想在我的applcation創造一個更新的形式對註冊用戶沒有路由匹配[POST] 「/用戶/編輯」
查看:
<h2><%= @title =%></h2>
<% if @user.errors.any? %>
<div id="error">
<h2><%= pluralize(@user.errors.count,"error") %> prohibited this user from registering</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg%></li>
<%end%>
</ul>
</div>
<%end%>
<%= form_for :user do |form| %>
<div class="reg_form">
<label for="first_name">First Name: </label>
<%= form.text_field :first_name %>
</div>
<div class="reg_form">
<label for = "last_name">Last Name: </label>
<%= form.text_field :last_name %>
</div>
<div class="reg_form">
<%=form.submit "Update"%>
</div>
<%end%>
控制器:users_controller.rb
def index
unless session[:user_id]
flash[:notice] = "Please Login first"
redirect_to :action => "new"
end
@title = "Profile"
@user=User.find(session[:user_id])
end
def edit
@title="Profile Update"
@user = User.find(session[:user_id])
if param_posted?(:user)
if @user.update_attributes(params[:user])
flash[:notice] = "Update Successful"
redirect_to :controller => "user", :action => "profile"
end
end
end
我包括在routes.rb中得到「編輯」=>'用戶#編輯'。然而,我得到一個錯誤 '沒有路由匹配[POST]「/ users/edit」'
任何幫助表示讚賞。謝謝。
而不是使用<%= form_for:user do | form | %>,嘗試用<%= form_for @user do | form |替換%> – LHH
@Lalitharyani所以沒有其他更改控制器? – Krishna
沒有必要爲您的路線文件中顯式定義編輯路線...只需添加資源:用戶,它將爲您的編輯動作創建默認路線 – LHH