[rspec-users] ActiveRecord::RecordNotFound error Cucumber/Webrat

David Chelimsky dchelimsky at gmail.com
Wed Nov 26 09:20:38 EST 2008


On Wed, Nov 26, 2008 at 5:04 AM, Andrei Erdoss <erdoss at gmail.com> wrote:
> Hello,
>
> I am bit new to Cucumber and Webrat and I have one issue that I can't seem
> to fix on my own. I would appreciate your help.
>
> I have a controller called places and a model called Place. I use the
> acts_as_tree plugin in order for a place to have more places within it. Ex.
> Georgia would have Cobb County, Cobb County would have Smyra City.
>
> This is how my controller looks for adding  a new place:
>
> # loading the parent place
> before_filter :load_parent_place, :only => [:new, :create]
> def load_parent_place
>     @parent_place = Place.find(params[:parent_id])
>   end
>
>  # GET /places/new
>   def new
>     @place = @parent_place.children.create
>
>
>     respond_to do |format|
>       format.html # new.html.erb
>     end
>   end
>
>   # POST /places
>   def create
>     @place = @parent_place.children.create(params[:place])
>
>     respond_to do |format|
>       if @place.save
>         flash[:notice] = 'Place was successfully created.'
>         format.html { redirect_to(@place) }
>       else
>         format.html { render :action => "new" }
>       end
>     end
>   end
>
>
> I have created the cucumber feature also, but it errors out:
>
>  Scenario: Register new place
>     Given I am on the new place page with parent place "Georgia"
>     When I fill in "Name" with "Atlanta"
>     And I press "Create"
>     Then I should see "Atlanta"
>
> For the first line starting with "Given", I tried to put this step, but it
> errors out with Couldn't find Place with ID=1 (ActiveRecord::RecordNotFound)
>
> Given /I am on the new place page with parent place "(.*)"/ do |name|
>   visits "/places/new?parent_id=1"
>   Place.create! :name => name, :parent_id => 1
> end
>
> What am I doing wrong or how should I proceed with writing these steps for
> this action?

Try this:

Given /I am on the new place page with parent place "(.*)"/ do |name|
  parent = Place.create! :name => name
  visits "/places/new?parent_id=#{parent.id}"
end


>
> Thank you,
>
> --
> Andrei Erdoss
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list