小编Sco*_*ynn的帖子

Ruby教程Ch9练习#9 - 不允许管理员删除自己

我是Ruby和Rails的新手,这就是为什么我要通过Michael Hartl的Rails教程.我被困在第9章,练习#9.我已将用户控制器中的def destroy代码更新为:

def destroy
  user = User.find(params[:id])
  if (current_user == user) && (current_user.admin?)
    flash[:error] = "Can not delete own admin account!"
  else
    user.destroy
    flash[:success] = "User destroyed."
  end
redirect_to users_path
end
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中测试时,通过在管理员登录时向current_user添加"删除"链接,这似乎有效.但是练习说先写一个测试 - 我做了但似乎没有用.这是我测试的内容:

describe "as admin user" do
  let(:user_admin) { FactoryGirl.create(:admin) }

  before { sign_in user_admin }

  describe "submitting a DELETE request to destroy own admin account" do
    before { delete user_path(user_admin) }
    it { should have_selector('div.alert.alert-error', text: 'delete own admin') }
  end
end
Run Code Online (Sandbox Code Playgroud)

也许我测试的不应该被测试.如何测试用户控制器中def def代码的修改?

tdd ruby-on-rails-3 railstutorial.org

6
推荐指数
1
解决办法
1538
查看次数

标签 统计

railstutorial.org ×1

ruby-on-rails-3 ×1

tdd ×1