Find works in view but not controller

Part of my application should show a list of all users on the system who agreed to have their details revealed. So, I have an action like this:

def view_users @users = User.find(:all,:conditions=>"reveal = 1",:order=>"login DESC") end

In the associated view, @users is an object of nilclass and the app. breaks as it tries to iterate over the @users array. However, if I include this at the top of view_users.rhtml

<% @users = User.find(:all,:conditions=>"reveal = 1",:order=>"login DESC") %>

...then everything works as expected.Why should this be?

My guess is that somewhere (perhaps an after_filter or a partial) you're setting @users to nil.

What happens if in your controller right after that find() call you do:

render :text => @users.inspect, :layout => false return

Do you get all your users then?

Hello there,

I ran into a problem with my shiny new RESTful controller. One of it's partial templates is using a custom member action's url helper created by map.resources, e.g. "something_model_url(id)". This works perfectly when I try it in my webbrowser, but my functional test fails when it gets to "display" the mentioned partial, telling me: Exception: undefined method "something_model_url" for #<#<Class...> On line #22 of (...)

Obviously the helper does not get defined. I already know that the routing is not being processed in functional tests due to performance reasons, but there must be a way to still access my partials?! So I guess I am searching for the magic "bring me some url-helpers" trigger in my functional tests. Any suggestions will be greatly appreciated!

Greetings, Christoph

Philip Hallstrom wrote:

What happens if in your controller right after that find() call you do:

render :text => @users.inspect, :layout => false return

Do you get all your users then?

That works - many thanks.

Then somewhere after your find() call, but before your view you are trashing @users....

:confused:

Just to add a quick note about a 'gotcha' that bit me in the early days...

Philip Hallstrom wrote:

Then somewhere after your find() call, but before your view you are trashing @users....

If you're doing a redirect_to, that'll trash your instance variables.

Best regarsd, Bill

Hi Folks,

I still can't figure out what the problem could be. It seems it's only the singular_url helpers that are missing, the plural_url helpers do not lead to test failure. Did really no one else run into something like this?

Greetings, Christoph

Christoph Olszowka schrieb: