Forum: Ruby on Rails Using rails-generated code in "show"

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Ali (Guest)
on 2007-03-12 22:57
(Received via mailing list)
Hi!

I used scaffold to create my mvc for my table.  I have only written
one other ROR application, and since I was winging it, I didn't take
advantage of the rails-generate code.

My scenario is:

User clicks save on form, and is redirected to the "show" view where
they see what they just saved.  Code is this:

<% session[:ward_id] = @ward %>
<p>

<% for column in Ward.content_columns %>
  <b><%= column.human_name %>:</b>

    <% if column.null == "true"  %>

    <% else %>

    <%=h @ward.send(column.name) %>

<% end %>

</p>
<% end %>

My error is that beloved "you have a nil object when you didn't expect
it!"
I am trying to check for nil values and have it just display nothing
but the human_name when it hits a nil.  I have tried many different
combinations and can't seem to get it right.  Any direction or
suggestion is always appreciated!!

Thank you!!
~~Ali
Trochalakis C. (Guest)
on 2007-03-13 00:04
(Received via mailing list)
On Mar 12, 10:57 pm, "Ali" <removed_email_address@domain.invalid> wrote:
> ~~Ali
Probably you don't pass the id parameter to the 'show' controller

You have to do something like this after the creation of the object:

redirect_to :action => 'show', :id => myobject.id
Ali (Guest)
on 2007-03-13 18:42
(Received via mailing list)
On Mar 12, 3:03 pm, "Trochalakis C." <removed_email_address@domain.invalid>
wrote:
>
> > Thank you!!
> > ~~Ali
>
> Probably you don't pass the id parameter to the 'show' controller
>
> You have to do something like this after the creation of the object:
>
> redirect_to :action => 'show', :id => myobject.id


Yep, that did it!!  Thanks a bunch!!
~Ali
This topic is locked and can not be replied to.