2013-02-20 82 views
0

我是新來的ROR,我,試圖從零用戶的現場升級爲1 我已經寫C控制器爲同一創建控制器

def update_users 
    Rails.logger.info("in Update users") 
    @user = User.find(params[:id]) 
    @user.deleted=1  

    respond_to do |format| 
    if @user.update_attributes(params[:user]) 
     format.html { redirect_to @user, notice: 'User was successfully Deleted.' } 
     format.json { head :no_content } 
    else 
     format.html { render action: "edit" } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
    end 
    end 
end 

而且在定義這個網址路線原樣

match '/update_users' => 'users#update_users', :as => 'update_users', :via => [:put] 

我爲同一IS-

= link_to raw('<span class="delete">Delete User</span>'), update_users_path(@user.id), 
           :method => :put, 
           :data => { :confirm => 'Are you sure?' }, 
           :remote =>true 

但在輸出I,越來越/ upda視圖te_users.7而不是/ update_users/7。 並在網絡側,我getting-

ActiveRecord::RecordNotFound in UsersController#update_users 

Couldn't find User without an ID 

請幫助

回答

1

試着改變你的路線:

put '/update_users/:id' => 'users#update_users' 

這樣就可以正確地傳遞你的ID給它。那麼你的鏈接幫手將是:

update_users_path(@user) 

因爲它現在你還沒有告訴路線從哪裏搶ID。

+0

不會把'/ update_users /:id'=>'users#update_users'做成一個更乾淨的溶劑嗎? – dennis 2013-02-20 13:45:55

+1

是的,我會改變它。 – 2013-02-20 13:46:27

+0

感謝他爲我工作.. – User16119012 2013-02-20 15:21:30