控制器:
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'
有可能吗?请帮帮我。
答案 0 :(得分:1)
您需要在路由中将这些端点添加为“成员”(不是集合):
resources :items do
get :another_edit, on: :member
put :another_update, on: :member
end
然后将使用“id”参数构建路由。