Right way to do rjs off a method with its own view?

Hi, just looking for “best practice” guidance…

I have a controller method that renders its output with an rhtml view
file. The output can also be updated via an rjs update via an rjs view
file.

I can’t work out if it is possible to have action.rhtml AND action.rjs
and have the correct one called depending on the request. SO, I have
done this:

if I have have “my_action.rhtml” and “my_action_update.rjs”,
then the controller method is :-

def my_action
… action code…

render :action => :my_action_update if request.xhr?

end

This works, but is it the right way, or is there a better way?

Comments appreciated :slight_smile:

John L. napisa³(a):

if I have have “my_action.rhtml” and “my_action_update.rjs”,
Comments appreciated :slight_smile:

Posted via http://www.ruby-forum.com/.

Try “respond_to” -
Peak Obsession.

def action
…action code…
respond_to do |format|
format.html # renders action.rhtml
format.js # renders action.rjs
end
end

Try “respond_to” -

Yes this worked, thanks!

Actually, it didn’t work straight off. I discovered it only works if
the files are called “action.html.rhtml” and “action.js.rjs” instead of
“action.rhtml” and “action.rjs”. I googled and found that this naming
dependency was introduced with rails 2.0.2.