何が間違っているのかわからないので、助けてください。
したがって、タイトルが示すように、すべてがブラウザでうまく機能します。ですから、それは私が正しく理解できない仕様だと思います。
ヘルパー、コントローラー、スペックのコードを何度か書き直しました。
今のところ私の仕様は次のとおりです。
describe "visit as admin" do
before do
sign_in admin
visit organization_users_path # row 20 of users_controller_spec
end
it "should display right page" do
page.should have_selector('title', text: "Users")
end
end
私がそれを実行すると、私は得ます:
1) Organization::UsersController visit as admin should display right page
Failure/Error: visit organization_users_path
NoMethodError:
undefined method `users' for nil:NilClass
# ./app/controllers/organization/users_controller.rb:5:in `index'
# ./spec/controllers/organization/users_controller_spec.rb:20:in `block (3 levels) in <top (required)>'
そして、ここに私のコントローラーとヘルパーがあります:
# helper
def current_organization
@current_organization ||= current_user.organization
end
def admin_user
unless current_user.admin?
redirect_to root_path
end
end
#controller
class Organization::UsersController < ApplicationController
before_filter :admin_user
def index
@users = current_organization.users
end
end
編集1:差出人rake routes
:
organization_users GET /organization/users(.:format) organization/users#index