如何为以下ActiveAdmin代码编写控制器和功能规范:
# app/admin/organization.rb
ActiveAdmin.register Organization do
batch_action :approve do |selection|
Organization.find(selection).each {|organization| organization.approve }
redirect_to collection_path, notice: 'Organizations approved.'
end
end
这是我的功能规格。它无法在弹出菜单中找到ActiveAdmin加载的“批处理操作”。
# spec/features/admin/organization_feature_spec.rb
require 'spec_helper'
include Devise::TestHelpers
describe 'Admin Organization' do
before(:each) do
@user = FactoryGirl.create(:admin_user)
login('admin@company.com', 'password1')
end
it 'approves in batch' do
organization = FactoryGirl.create(:organization)
visit admin_organizations_path
check 'collection_selection_toggle_all'
click_link 'Batch Actions'
click_link 'Approve Selected'
organization.reload
organization.state.should eq 'approved'
end
end
版本
答案 0 :(得分:9)
我想出了如何构建控制器规范。
# spec/controllers/admin/organizations_controller_spec.rb
require 'spec_helper'
include Devise::TestHelpers
describe Admin::OrganizationsController do
render_views
before(:each) do
@user = FactoryGirl.create(:admin_user)
sign_in @user
end
it 'approve organization' do
@organization = FactoryGirl.create(:organization, state: 'pending')
post :batch_action, batch_action: 'approve', collection_selection_toggle_all: 'on', collection_selection: [@organization.id]
@organization.reload
@organization.pending?.should be_false
end
end
如果有人知道如何编写功能规范,请分享该信息。