2017-02-18 68 views
0

控制器:如何添加不同的编辑/更新方法到轨道控制器?

def edit 
end 

def update 
    respond_to do |format| 
     if @item.update(item_params) 
     format.html { redirect_to @item, notice: 'Item was successfully updated.' } 
     format.json { render :show, status: :ok, location: @item } 
     else 
     format.html { render :edit } 
     format.json { render json: @item.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

我想补充另一个方法是这样的。为了只更新1列的项目,我想不显示其他列的用户。 我有所有必要的意见。

def another_edit 
end 

def another_update 
respond_to do |format| 
     if @item.update(params[:item].permit(:amount)) 
     format.html { redirect_to @item, notice: 'Item was successfully updated.' } 
     format.json { render :show, status: :ok, location: @item } 
     else 
     format.html { render :edit } 
     format.json { render json: @item.errors, status: :unprocessable_entity } 
     end 
    end 

我以为我的路线错了。然后试图

resources :items do 
    collection do 
     get 'add', on: :edit 
    end 
    end 

get 'items/another_edit' 

是否有可能或不?请帮帮我。

回答

1

您需要在路由添加这些端点作为“会员”(不集合):

resources :items do 
    get :another_edit, on: :member 
    put :another_update, on: :member 
end 

然后路线将与“ID”里面的参数来构建。

+0

谢谢veeeery多 –

相关问题