Thank you for your answer. Here is what I've done. I installed the 
plugin radiant-rails-support that you can find here:
http://code.google.com/p/radiant-rails-support/

Now I've access to rails method doing this in my app/models/solr_tags.rb 
(class SolrClass < SiteController):

module SolrTags
  include Radiant::Taggable

  class SolrClass < SiteController
    def getflare
      session[:flare_context] ||= Flare::Context.new(SOLR_CONFIG)
      @flare = session[:flare_context]
    end
  end

  tag 'solr' do |tag|
    tag.expand
  end
 
  tag 'solr:facet_list' do |tag|
    s = SolrClass.new
    s.getflare
  end
end

The problem is that the behaving of this doesn't seem the same than if I 
do this in app/view/index.rhtml for example and I was wondering if 
someone could explain me why because I am lost.

I get this error when I'm calling the tag solr_facet_list 
(<r:solr:facet_list></r:solr:facet_list>):
You have a nil object when you didn't expect it! You might have expected 
an instance of Array. The error occurred while evaluating nil.[]


Marc


Aitor Garay-Romero wrote:
>     I had to do this i would find a way to refer to the active controller,
> in this case SiteController, and execute my "rails" methods on that object.
> Or even do some ugly meta-programming stuff so in your tags "self" refers to
> that controller object.
>
>     There must be an instance or class variable that you can access that
> gives you a reference to that SiteController instance.  Do something like
> "puts self.inspect" in your tag to see your "environment" and search for
> something useful.
>
>     /AITOR
>
> On Nov 15, 2007 3:39 PM, Marc des Garets <[EMAIL PROTECTED]> wrote:
>
>   
>> I just add something to my previous message:
>>
>> Today I have to do this to call the session method of rails (or any
>> other rails method):
>> ActionController::SessionManagement::ClassMethods.session
>>
>> I want to have to do:
>> session
>>
>> without writing the ActionController::SessionManagement::ClassMethods or
>> doing an include ActionController::SessionManagement::ClassMethods
>>
>>
>> Marc
>>
>>
>> Marc des Garets wrote:
>>     
>>> I think a piece of code will explain better what I want to do:
>>>
>>> Here is my solr_tags.rb:
>>>
>>> module SolrTags
>>>     include Radiant::Taggable
>>>     include Flare::ActionControllerExtensions::InstanceMethods
>>>     include ActionController::SessionManagement::ClassMethods
>>>
>>>     ...
>>>
>>>     tag 'solr:facet_list' do |tag|
>>>         @flare = flare_before
>>>         @flare.facet_fields.each do |field|
>>>             %{#{facet_label(field)}}
>>>         end
>>>     end
>>>
>>> end
>>>
>>> The flare_before function in lib/flare/controller_extensions.rb
>>>
>>> def flare_before
>>>           # TODO: allow source of context to be configurable.
>>>           session[:flare_context] ||= Flare::Context.new(SOLR_CONFIG)
>>>
>>>           @flare = session[:flare_context]
>>>
>>>       return @flare
>>> end
>>>
>>> The method session is part of rails, I can call it thanks to include
>>> ActionController::SessionManagement::ClassMethods.
>>>
>>> Now I have this error message:
>>> undefined method `write_inheritable_array'
>>>
>>> This method is called by the method session of rails.
>>>
>>> What I want to do is that I don't have to add include
>>> ActionController::SessionManagement::ClassMethods and that when I use a
>>> rails method, this method knows about others rails method.
>>>
>>> In short, I want to have access to every rails method.
>>>
>>>
>>> Marc
>>>
>>>
>>> Sean Cribbs wrote:
>>>
>>>       
>>>> Marc,
>>>>
>>>> By default, Radius tags are rendered within a Page that is called from
>>>> the SiteController, which has the session turned off.  You might be
>>>> better off using cookies, but you would only be able to read them
>>>>         
>> unless
>>     
>>>> you can come up with some scheme that decides what cookies to send
>>>>         
>> based
>>     
>>>> on the page.  Including that module doesn't accomplish what you want.
>>>> Could you give us a little more detail about what you want to do?
>>>>
>>>> Sean
>>>>
>>>> Marc des Garets wrote:
>>>>
>>>>
>>>>         
>>>>> Hi all,
>>>>>
>>>>> I'm pretty new in radiant and in ruby on rails but I'm making an
>>>>> extension for radiant and I have some questions I'm pretty sure you'll
>>>>> be able to answer:
>>>>>
>>>>> I'm creating my tags for my extension in app/models/solr_tags.rb
>>>>>
>>>>> I'm using the method session of the
>>>>> ActionController::SessionManagement::ClassMethods class of rails but
>>>>>           
>> to
>>     
>>>>> use this session method I had to add this in my solr_tags.rb file:
>>>>>
>>>>> include ActionController::SessionManagement::ClassMethods
>>>>>
>>>>> After that I can call the method session in my
>>>>> lib/flare/controller_extensions.rb that is in a function I'm calling
>>>>> from my solr_tags.rb file.
>>>>>
>>>>> But now, I have this error: undefined method `write_inheritable_array'
>>>>> that I could solve doing an other include of a rails class but I was
>>>>> wondering if there is an other way to get all these rails method
>>>>>           
>> without
>>     
>>>>> adding an include each time I need one rails method. Furthermore, it's
>>>>> the method session that is using write_inheritable_array so it should
>>>>>           
>> be
>>     
>>>>> fine. I think I have some misconfiguration somewhere. Can you help?
>>>>>
>>>>> Hope I was clear enough, tell me if not and thank you in advance for
>>>>> your help.
>>>>>
>>>>>
>>>>> Marc
>>>>>
>>>>> _______________________________________________
>>>>> Radiant mailing list
>>>>> Post:   [email protected]
>>>>> Search: http://radiantcms.org/mailing-list/search/
>>>>> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> _______________________________________________
>>>> Radiant mailing list
>>>> Post:   [email protected]
>>>> Search: http://radiantcms.org/mailing-list/search/
>>>> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>>>>
>>>>
>>>>         
>>> _______________________________________________
>>> Radiant mailing list
>>> Post:   [email protected]
>>> Search: http://radiantcms.org/mailing-list/search/
>>> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>>>
>>>       
>> _______________________________________________
>> Radiant mailing list
>> Post:   [email protected]
>> Search: http://radiantcms.org/mailing-list/search/
>> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>>
>>     
> _______________________________________________
> Radiant mailing list
> Post:   [email protected]
> Search: http://radiantcms.org/mailing-list/search/
> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>   

_______________________________________________
Radiant mailing list
Post:   [email protected]
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to