On 22.02.2012, at 15:07, Soichi Ishida wrote:

> Thanks for your answer.
> 
>> 
>> But in general, operating any ActiveRecord model from a view is a bad
>> idea because of rendering speed. All models should be ready to be
>> accessed before ActionView - in controller - that would be much much
>> faster.
> 
> 
> Can you (or anyone) give me more specific examples?
> The segments of actual codes or links to those that show such examples 
> will be appreciated.


class ScriptsController < ApplicationController

        def new_or_edit_by_video
                @video = Video.find(params[:video_id]) # This is helpful if the 
:video_id is invalid video, raises ActiveRecord::RecordNotFound
                @script = Script.find_or_create_by_video_id(@video.id)
                
                # or more optimized approach
                # @script = @video.scripts.first||@video.scripts.build # or 
.build_script if :has_one instead of :has_many.
                #                                                ^^^ or any 
index due to your app-logic.
        end

end


in Action View side:

  <%= render :partial => "create_or_update_script",
 :locals => { :script => @script } %>

you can write lazy style (without :locals):

  <%= render "create_or_update_script", :script => @script %>



So, in ActionView runtime @script has been initialized, prepared and ready to 
be processed.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to