Forum: Ruby on Rails Controller method that doesn't require a view

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.
JannaB (Guest)
on 2009-06-04 16:02
(Received via mailing list)
I need to be able to write a controller method that does nothing to
the view. That is, when the method in the controller terminates,  I
dont get an error in the browswer of:

Template is missing
Missing template blahbal/blahblah.erb in view path blah/views

The termination of the controller I must write does nothing to the
view (actually, I merely need to execute a little javascript, closing
some divs, etc). Is there a way to do this? Thanks, Janna B
Sandip R. (Guest)
on 2009-06-04 16:13
(Received via mailing list)
Do like this

   def my_method
# DO whatever here
render :nothing => true
   end

Sandip

On Thu, Jun 4, 2009 at 5:31 PM, JannaB <removed_email_address@domain.invalid>
wrote:

> some divs, etc). Is there a way to do this? Thanks, Janna B
> >
>


--
Ruby on Rails Developer
http://sandip.sosblog.com
http://funonrails.wordpress.com
www.joshsoftware.com
JannaB (Guest)
on 2009-06-04 17:03
(Received via mailing list)
That's too easy! Oh, yeah....now I remember why I was turned on by
Rails. Thanks!
JannaB (Guest)
on 2009-06-04 17:17
(Received via mailing list)
Actually...it DOES render nothing (as it says!). This just leaves me
with a blank, white screen! I really need to have it DO nothing, and
really RENDER nothing....just return from the controller's method
without doing anything different to the view. -Janna B
Frederick C. (Guest)
on 2009-06-04 17:40
(Received via mailing list)
On Jun 4, 2:16 pm, JannaB <removed_email_address@domain.invalid> wrote:
> Actually...it DOES render nothing (as it says!). This just leaves me
> with a blank, white screen! I really need to have it DO nothing, and
> really RENDER nothing....just return from the controller's method
> without doing anything different to the view. -Janna B
>

I'm not entirely sure what you are after if render :nothing doesn't
fit. What are you expecting the http response to contain ?

Fred
JannaB (Guest)
on 2009-06-04 17:46
(Received via mailing list)
I have a submit button on a form, which is in a div. When submitted,
an email is sent, the div closes, all else remains the same in the
view. Im just having a hard time in my mind fitting this into the
Rails MVC paradigm here. How can I do this? -Janna

On Jun 4, 9:39 am, Frederick C. <removed_email_address@domain.invalid>
Frederick C. (Guest)
on 2009-06-04 18:00
(Received via mailing list)
On Jun 4, 2:44 pm, JannaB <removed_email_address@domain.invalid> wrote:
> I have a submit button on a form, which is in a div. When submitted,
> an email is sent, the div closes, all else remains the same in the
> view. Im just having a hard time in my mind fitting this into the
> Rails MVC paradigm here. How can I do this? -Janna
>

so you should be doing an ajax form submit that renders some
javascript to close the div and so on.

Fred
Mk 2. (Guest)
on 2009-06-04 18:34
JannaB wrote:
> I have a submit button on a form, which is in a div. When submitted,
> an email is sent, the div closes, all else remains the same in the
> view. Im just having a hard time in my mind fitting this into the
> Rails MVC paradigm here. How can I do this? -Janna
>

I don't think that is so much because of rails but because that is a
consequence of submitting a form.  However, you could investigate what
Fred suggests or try

<% form_remote_tag :update => 'dud', :url => {:action => 'the action'}
do%>

I just tried this and nothing complains if you try to update a
non-existent page element ('dud'), so that will work.  The page with the
form remains with nothing changed, but the controller does process the
form.

:)
Frederick C. (Guest)
on 2009-06-04 18:38
(Received via mailing list)
On Jun 4, 3:34 pm, Mk 27 <removed_email_address@domain.invalid> wrote:
>
> <% form_remote_tag :update => 'dud', :url => {:action => 'the action'}
> do%>
>
> I just tried this and nothing complains if you try to update a
> non-existent page element ('dud'), so that will work.  The page with the
> form remains with nothing changed, but the controller does process the
> form.

You could even drop the  :update option completely.

Fred
Rick D. (Guest)
on 2009-06-04 19:31
(Received via mailing list)
On Thu, Jun 4, 2009 at 10:37 AM, Frederick C.
<removed_email_address@domain.invalid> wrote:
>> form remains with nothing changed, but the controller does process the
>> form.
>
> You could even drop the  :update option completely.

Although, the OP actually said "The termination of the controller I
must write does nothing to the view (actually, I merely need to
execute a little javascript, closing some divs, etc). "

Which seems self-contradictory, if you take view as being what the
end-user sees. If there are  divs to be closed, or whatever, DOM
changes need to be effected.

So I think one or more callbacks (:success, :failure, :complete) are
needed to close/hide those divs, and perhaps some rendered javascript
from the request if what needs to be done depends on server state as a
result of the request.
--
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale
This topic is locked and can not be replied to.