On Sun, Jun 5, 2011 at 8:50 PM, Michael Richardson <[email protected]> wrote:
> I've just created a directory of very elementary controllers with AS
> to act as admin interface.
> My app/controllers/admin/admin_controller.rb:
>
> class Admin::AdminController < ApplicationController
>  load_and_authorize_resource
>  before_filter :ensure_admin
>  layout "administrator"
>
>  ActiveScaffold.set_defaults do |config|
>    config.ignore_columns.add
> [:created_at, :updated_at, :lock_version]
>  end
>
>  def ensure_admin
>    redirect_to root_url unless current_user.admin?
>  end
>
>  def current_ability
>    @current_ability ||= AdminAbility.new(current_user,
> params[:format])
>  end
> end
>
> from admin/users_controller.rb:
> class Admin::UsersController < Admin::AdminController
>  active_scaffold :users do |config|
>    config.columns.add :password
>  end
> end
>
> (password is a virtual field in devise models).
>
> This works great from a browser.  No problems.
>
> require 'spec_helper'
>
> describe Admin::UsersController do
>  include Devise::TestHelpers
>  fixtures :users
>
>  describe "admin users" do
>    it "can create new user without password" do
>      @adminuser= users(:admin)
>      sign_in(@adminuser)
>
>      post :create, :user => {
>        :email => '[email protected]',
>        :fullname => 'Frank Jones'
>      }
>      assert_response 201
>    end
>  end
> end
>
> This blows up with:
>
> marajade-[~/C/hydra/portal] mcr 10043 %bundle exec rspec spec/
> controllers/admin/users_controller_spec.rb
> F
>
> Failures:
>
>  1) Admin::UsersController admin users can create new user without
> password
>     Failure/Error: post :create, :user => {
>     NoMethodError:
>       You have a nil object when you didn't expect it!
>       You might have expected an instance of Array.
>       The error occurred while evaluating nil.each
>     # ./spec/controllers/admin/users_controller_spec.rb:13
>


looks like AS can't reach columns array.
Try to logger.info the record object with before_create_save(record)
in your controller to see if AS is getting it and parsing columns.



>
> Too many layers to debug through, and obviously the error is not at
> line 13.  Line 13 is just the post :create line.
> If I insert my own "def create" method (rather than let AS provide
> it), then I have no problems, but of course, then I have have to
> generate out everything including the views, etc. which isn't what I
> wanted to do...
>
> Even a clue on how to debug this would be great.
>


you can get ruby_debug gem. It let's you go through all the whole
process. It's long, but you can see everything AS do (plus all rails
stack). You can pause the process and examine objects, even execute
(tweak) code.



> --
> You received this message because you are subscribed to the Google Groups 
> "ActiveScaffold : Ruby on Rails plugin" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/activescaffold?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails plugin" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/activescaffold?hl=en.

Reply via email to