In my controller show method i have two instance variables which have
large amount of data and take much time to fetch from remote system.
shown below
def show @graph = Koala::Facebook::GraphAPI.new(session[:fbuser]
[“credentials”][“token”]) @friends = @graph.get_connections(“me”, “friends”) @friends[email protected]_a
end
in the same controller I have another action which requires same data.
shown below
which are loading every time even i used || (or) in fetching.
Any help regarding to re usage of instance variables of one action in
another action of same controller.
which are loading every time even i used || (or) in fetching.
Any help regarding to re usage of instance variables of one action in
another action of same controller.
I think the only way would be to cache the data locally in some way,
either save it in a file or in the database and then retrieve it in
the next action.
If you are using the data to generate the same partial display then
you may be able to use the built in caching mechanism in rails. See
the Rails Guide on caching. In fact it may be worth looking at that
anyway.
On Monday 19 September 2011 06:14 PM, Colin L. wrote:
end
you may be able to use the built in caching mechanism in rails. See
the Rails Guide on caching. In fact it may be worth looking at that
anyway.
Colin
Yes if i use catching in my application view the size limit exceeding .
even I tried with passing these values throw params[:var] argument also
failing Too large http request error.
I also tried with Class variables to store data like @@graph and
@@friends but no use those variables not at all storing data. any other
way please.
@friends = @graph.get_connections(“me”, “friends”)
[“credentials”][“token”])
either save it in a file or in the database and then retrieve it in
the next action.
If you are using the data to generate the same partial display then
you may be able to use the built in caching mechanism in rails. See
the Rails Guide on caching. In fact it may be worth looking at that
anyway.
Colin
Yes if i use catching in my application view the size limit exceeding
What do you mean catching? If you mean the rails caching then there
is no size limit.
. even
I tried with passing these values throw params[:var] argument also failing
Too large http request error.
I also tried with Class variables to store data like @@graph and @@friends
but no use those variables not at all storing data. any other way please.
Yes, the ways I suggested, in a file, database, possibly using the
rails caching to help. Have you read the guide?
Yes if i use catching in my application view the size limit exceeding
What do you mean catching? If you mean the rails caching then there
is no size limit.
Depends on the store - for example memcache won’t store anything
larger than 1Mb
It might be preferable to store the objects that are slow to fetch
rather than the view itself, for example
@friends = Rails.cache.fetch(“friends_for_#{session[:fbuser]
[“credentials”][“token”]}”) do
graph = Koala::Facebook::GraphAPI.new(session[:fbuser]
[“credentials”][“token”])
graph.get_connections(“me”, “friends”).to_a
end
Fred
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.