我是ROR的新手,我试图将用户的字段从null更新为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]
我对此的看法是 -
= link_to raw('<span class="delete">Delete User</span>'), update_users_path(@user.id),
:method => :put,
:data => { :confirm => 'Are you sure?' },
:remote =>true
但是在输出i中,获取/update_users.7而不是/ update_users / 7。 在网络方面,我得到了
ActiveRecord::RecordNotFound in UsersController#update_users
Couldn't find User without an ID
请帮助
答案 0 :(得分:3)
您的路由不正确 - 您的新操作应该是您现有用户路线上的成员操作。
有关详细信息,请参阅http://guides.rubyonrails.org/routing.html#adding-more-restful-actions。
答案 1 :(得分:1)
尝试将路线更改为:
put '/update_users/:id' => 'users#update_users'
这样您就可以正确地将ID传递给它。然后您的链接助手将是:
update_users_path(@user)
现在你还没有告诉路线从哪里获取身份证。