Forum: Rails-ES rutas REST

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
A9205673194b29cfdfa20f100f72ec86?d=identicon&s=25 Andrea Val (andreaval25)
on 2009-05-31 00:11
Hola amigos,
estoy haciendo una pequeña aplicación para aprender Rails y luego poder
afrontar mi proyecto final de carrera. Tengo una duda sobre las rutas
REST, tengo lo siguiente:

map.resources :order

Y luego he creado un permalink, para no mostrar /orders/1, sino
/2009/10/30/mi-primer-pedido

  def permalink
    { :year => sprintf("%4d", created_at.year), :month =>
sprintf("%02d", created_at.month),
      :day => sprintf("%02d", created_at.day), :slug => slug }
  end

  before_create :build_permalink

  protected

  def build_permalink
    value = self.name.gsub(/[^\x00-\x7F]/n, '').to_s
    value.gsub!(/[']+/, '')
    value.gsub!(/\W+/, ' ')
    value.strip!
    value.downcase!
    value.gsub!(' ', '-')
    self.permalink = value
  end

Bien, lo que quiero ahora es tener las rutas de edit, update, y destroy,
pero que no sean del tipo:

 /order/1/edit

Sino,

 /2009/10/30/mi-primer-pedido/edit

Tampoco que se como montar el form_for

Si alguien me puede ayudar en algo, estaría muy agradedica.

Un saludo.
A9205673194b29cfdfa20f100f72ec86?d=identicon&s=25 Andrea Val (andreaval25)
on 2009-05-31 00:13
Olvidé el contenido del fichero routes.rb

  map.resources :orders
  map.permalink ':year/:month/:day/:permalink', :controller  =>
'orders', :action => 'show', :year => /\d{4}/
Cdb09f77ecd371f212b3e517db22efac?d=identicon&s=25 show gmail (Guest)
on 2009-05-31 23:01
(Received via mailing list)
Como ya te comentan no haría falta crear un permalink, con jugar a
partir
del created_at y las variables que te indica Andrea pasadas por GET ya
te
ayudarían a conseguir la order en tu sistema persistente.
Así que si haces rutas para cada acción ya te valdría:

map.order_edit ':year/:month/:day/:permalink/edit', :controller =>
'orders',
:action => 'edit'
map.order ':year/:month/:day/:permalink', :controller  => 'orders',
:action
=> 'show', :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/

Cuidado que el orden de las definiciones en el archivo de rutas importa.

On Sun, May 31, 2009 at 12:13 AM, Andrea Val <
This topic is locked and can not be replied to.