Gotcha! In Rails, you avail of request.parameters, not request.params as 
I tried to do (my lazyness in reading API docs being deservedly 
punished).
So here is my patch of Mario's code in order to get record information 
dynamically by id in a radiant page used as a template (I added an 
'URI_id' attribute in the tag):
  tag 'record' do |tag|
    raise TagError, "'#{tag.name}' tag must contain a 'model' 
attribute." unless tag.attr['model']
    raise TagError, "'#{tag.name}' tag must contain a 'conditions' or an 
'id' or an 'URI_id' attribute." unless tag.attr['conditions'] or 
tag.attr['id'] or tag.attr['URI_id']
    record = eval("#{tag.attr['model']}.find(:first, :conditions => 
tag.attr['conditions'], :order => tag.attr['order'])") if 
tag.attr['conditions']
    record = eval("#{tag.attr['model']}.find(#{tag.attr['id']})") if 
tag.attr['id']
    #record = 
eval("#{tag.attr['model']}.find(request.request_uri.split('/').last)") 
if tag.attr['URI_id']
    record = eval("#{tag.attr['model']}.find(request.parameters['id'])") 
if tag.attr['URI_id']
    tag.locals.record = record
    tag.expand if record
  end

In [myext]_extension.rb I added a route in order to pass the id as a 
request parameter which is stripped from the radiant page url:
map.show_singlelink '[radiant page url]/:id',                :controller 
=> 'site', :action => 'show_page',:url => '[radiant page url]'

Luca


lerzegov wrote:
> Thank you, Mario, for making your extension available.
> I gave a look to the 'record' tag, used for showing individual records.
> The tags has an 'id' attribute that can be set manually in a dedicated
> radiant page. I was wondering how to make a radiant page showing
> individual records dynamic, i.e. selecting the record with the id passed
> as a request param. In this case the page acts as a template used for
> every record, avoiding the creation of distinct pages with the id value
> "hard coded" in each of them.
> I posed this same problem in a previous post, and tried new attempts at
> solving it, but have not been able to figure out a solution so far.
> 
> Luca
> 
> [EMAIL PROTECTED]
> 
>>Some of you had indicated an interest in my not-yet-mature extension for
>>rendering models.  Basically, it allows you to use Radius tags to
>>display records from your Radiant database.  Obviously, this is most
>>useful if you've created custom models and the back-end interface (an
>>extension) to maintain those models.
> 
>>You can download the extension at:
>>http://www.boardgamerspastime.com/downloads/radiant/extensions/record_tags.zip
> 
> 
>>Please notify me of any issues you encounter.  I've tested on Ubuntu.


-- 
Posted via http://www.ruby-forum.com/.
_______________________________________________
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