2013-07-01 87 views
0

我使用rolify gem製作模型角色。 但要做出的命名空間控制:管理員:沒有路線匹配[PATCH]「/admin/roles.4」

class Admin::RolesController < ApplicationController 

def index 
    @roles = Role.all 
end 
def new 
    @role = Role.new 
end 

def create 
    @role = Role.new(role_params) 
    respond_to do |format| 
     if @role.save 
      format.html { redirect_to admin_role_path(@role), notice: 'Роль создана.' } 
      format.json { render action: 'show', status: :created, location: @role } 
     else 
      format.html { render action: 'new' } 
      format.json { render json: @role.errors, status: :unprocessable_entity } 
     end 
    end 
end 

def show 
    @role = Role.find(params[:id]) 
end 

def edit 
    @role = Role.find(params[:id]) 
end 

def update 
    respond_to do |format| 
     if @role.update(role_params) 
      format.html { redirect_to admin_role_path(@role), notice: 'Роль обновлена.' } 
      format.json { head :no_content } 
     else 
      format.html { render action: 'edit' } 
      format.json { render json: @role.errors, status: :unprocessable_entity } 
     end 
    end 
end 

def destroy 
    @role = Role.find(params[:id]) 
    @role.destroy 
    respond_to do |format| 
     format.html { redirect_to admin_roles_url } 
     format.json { head :no_content } 
    end 
end 

private 
    def set_role 
     @role = Role.find(params[:id]) 
    end 

    def role_params 
     params.require(:role).permit(:name) 
    end 
end 

當我想更新角色,我打開表格,編輯,點擊提交,並得到錯誤:

 
Routing Error 
No route matches [PATCH] "/admin/roles.4" 

請幫助我。

+0

你能顯示你的routes.rb嗎? – AnkitG

+0

和你的角色形式。 –

+0

Form:= simple_form_for @role,url:admin_roles_path(@role),:html => {:class =>'form-horizo​​ntal'} do | f | = f.error_notification .FORM-輸入 = f.input:姓名,input_html:{類: '輸入XLARGE'} .FORM-動作 = f.button:提交,:值=>「Сохранить 」,:類=> 'BTN BTN-初級' – ramkhat

回答

2

根據上面粘貼的表單代碼,您會看到url指向用於創建但不是更新的路徑。

你應該能夠更新您的來電simple_form像這樣:

= simple_form_for [:admin, @role], :html => { :class => 'form-horizontal' } do |f| 

你會看到,你可以通過用符號化的命名空間名稱和對象實例的數組,它會建立網址對於POST s和PATCH es均正確。

+0

不,這是我的route.rb: 'Freshapp :: Application.routes.draw做 命名空間:管理員做 資源:發貨 資源:角色 root'dashboard#index' end devise_for:users root'home#index' end' – ramkhat

+0

請參閱我完全更新的答案。這應該解決它。 –

0

問題解決了。

在_form我修復了網址。

 
= simple_form_for @role, url: admin_role_path(@role), :html => { :class => 'form-horizontal' } do |f| 
+4

你應該向那些幫助你的人發聲。 – patriques