Forum: Ruby on Rails form questions

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.
871ebf674d9b1d318c31e5da7842f49a?d=identicon&s=25 Vapid Babble (vapidbabble)
on 2006-02-27 17:54
(Received via mailing list)
I have a very simple form that looks allows an input for an error code
and then give the show page from the scaffolding if the error code is
in the database and a notification on the list page, again from the
scaffolding if not.

Here's the form:
find.rhtml
<h1>Find error</h1>
<%= start_form_tag :action => 'search'%>
<p><label for="message_code">Code</label><br/>
<%= text_field 'message', 'code'  %></p>
 <%= submit_tag 'Search' %>
<%= end_form_tag %>

<%= link_to 'Back', :action => 'list' %>

Here's the method, search in the controller

 def search
   code=params[:message]["code"]
   @message = Message.find_by_code(code)
   if @message.nil?
       #render :action => 'find'
       flash[:notice] = "Code #{code} not found!\n Please choose a
code from this list"
       flash[:error] = 'Boom'
       redirect_to :action => 'list'
   else
       redirect_to :action => 'show', :id => @message
   end
 end

It works except for the fact that flash[:error] does not display and
in fact if I try :error for the first flash, it will not display.

Aside from this problem is their a better way to do this. I have the
agile book and googled quite a bit to finally find how to pass
non-database elements from a form to the controller, but I've lost the
link. I'm new to web apps so I don't know what the accepted practice
is for something like this so any helpful advise or criticism is
appreciated.

--
-john
--
The deep fascination of myths is that they speak directly to deeper
levels of our nature and to the subconscious, and give the profound
assurance that we are each, in essence, deathless and immortal sparks
of Divinity on the long evolutionary journey into higher consciousness.
- Sir George Trevelyn
E48d29dc8fedb2878fa518d41cc63d88?d=identicon&s=25 Jan Prill (Guest)
on 2006-03-02 10:07
(Received via mailing list)
Hi, Vapid,

did you change anything on the scaffolded layout. In your view/layouts
folder is there a scaffold layout for the controller? And in this
layout: Is
there display code for the flash notice?

Regards
Jan Prill
871ebf674d9b1d318c31e5da7842f49a?d=identicon&s=25 Vapid Babble (vapidbabble)
on 2006-03-14 00:12
(Received via mailing list)
I did everything in the generated controller, so I didn't change the
layout.  I'm not sure about your last question? I just call flash.
With :notice it works, with :error it does not. I'll double check my
Agile book but from what you are saying I didn't supply the needed
display code for error.

On 3/2/06, Jan Prill <JanPrill@blauton.de> wrote:
> On 2/27/06, Vapid Babble <vapidbabble@gmail.com> wrote:
> <p><label for="message_code">Code</label><br/>
>    @message = Message.find_by_code(code)
>
> --
> http://lists.rubyonrails.org/mailman/listinfo/rails
>
>
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>
>
>


--
-john
--
4005a47a8f2ceee49670b920593c1d52?d=identicon&s=25 Ben Munat (Guest)
on 2006-03-14 03:47
(Received via mailing list)
Doesn't look like you're doing anything with flash[:error] in your view.
The
flash[:notice] shows up because the basic layout generated by scaffold
puts

<p style="color: green"><%= flash[:notice] %></p>

in there... Try putting that with :error instead... bet yah it'll work.

b

PS: I actually saved the model object in the flash on error, cuz that
has all the errors
in it. Then I can use error_messages_for in the view.
This topic is locked and can not be replied to.