首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails中的失败测试教程第9章

Rails中的失败测试教程第9章
EN

Stack Overflow用户
提问于 2012-12-13 11:11:07
回答 2查看 541关注 0票数 0
代码语言:javascript
复制
Failures:

1) User pages signup with valid information edit with invalid information 
 Failure/Error: before { click_button "Save changes" }
 AbstractController::ActionNotFound:
   The action 'update' could not be found for UsersController
 # (eval):2:in `click_button'
 # ./spec/requests/user_pages_spec.rb:105:in `block (6 levels) in <top (required)>'

 Finished in 1.13 seconds
 62 examples, 1 failure

 Failed examples:

 rspec ./spec/requests/user_pages_spec.rb:107 # User pages signup with valid information edit with invalid information 

我认为它没有在我的users_controller.rb中看到我的更新操作,但是它在那里:

代码语言:javascript
复制
 class UsersController < ApplicationController

 def show
   @user = User.find(params[:id])
 end

 def new
   @user = User.new
 end


def create
@user = User.new(params[:user])
if @user.save
  sign_in @user
  flash[:success] = "Welcome to the Sample App!"
  redirect_to @user
else
  render 'new'
 end
end


def edit
   @user = User.find(params[:id])
 end 
end


def edit
  @user = User.find(params[:id])
end


def update
 @user = User.find(params[:id])
 if @user.update_attributes(params[:user])
  flash[:success] = "Profile updated"
  sign_in @user
  redirect_to @user
else
  render 'edit'
 end
end

我以某种方式结束了两个编辑操作,但如果我删除其中一个,我可以让测试运行。我想我遇到的99%的麻烦都是因为到处都是结尾,并且在错误的地方插入了新的动作。谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-13 11:15:39

代码语言:javascript
复制
def edit
   @user = User.find(params[:id])
 end 
end

这里有一个双end。这将结束class UsersController。只需删除所有这些行,就可以了。

票数 2
EN

Stack Overflow用户

发布于 2012-12-13 11:16:22

首先,你必须匹配每一端。您可能正在删除第二个编辑操作,该操作将导致UserController类在第一个编辑操作中结束,因为您在该操作中有额外的结尾……

代码语言:javascript
复制
class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
  end

  def new
    @user = User.new
  end


  def create
    @user = User.new(params[:user])
    if @user.save
      sign_in @user
      flash[:success] = "Welcome to the Sample App!"
      redirect_to @user
    else
      render 'new'
    end
  end

  def edit
    @user = User.find(params[:id])
  end

  def update
    @user = User.find(params[:id])
    if @user.update_attributes(params[:user])
      flash[:success] = "Profile updated"
      sign_in @user
      redirect_to @user
    else
      render 'edit'
    end
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13852324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档