Направляющие УСПОКОИТЕЛЬНАЯ Маршрутизация С '/' и Краткие заголовки

Ну, да. Конечно, если бы у нас была машина времени, возвращаясь и удостоверяясь, что много функций Javascript было разработано, то по-другому было бы главное времяпрепровождение (что, и обеспечение людей, которые разработали механизм CSS IE, никогда не входил в IT). Но это не собирается происходить, и мы застреваем с ним теперь.

я подозреваю, вовремя, это станет "Машинным языком" для сети, с другой лучше разработанной компиляцией языков и API вниз к нему (и обслужит различные недостатки механизма исполнения).

я не думаю, однако, любой из этих "лучше разработанных языков" будет Java, Python или Ruby. JavaScript, несмотря на способность, которая будет использоваться в другом месте, язык сценариев веб-приложения. Учитывая, что вариант использования, мы можем добиться большего успеха, чем любой из тех языков.

6
задан Eric Lubow 9 December 2009 в 02:32
поделиться

2 ответа

Я думаю, это не работает, потому что вы не используете собственный маршрут. Я делаю это все время. Я просто настраиваю простой настраиваемый маршрут:

map.present_page '/blog/:year/:month/:day/:slug',
          :controller => 'posts', :action => 'show'

Тогда вы сможете сделать:

present_page_path(:year => 2009, 
                  :month => "December", 
                  :day => "13", 
                  :slug => "just-an-example")

Причина, по которой вы получаете строку запроса, скорее всего, состоит в том, что rails по какой-либо причине не подключается к вашему маршруту. Использование именованного маршрута явно указывает рельсам использовать этот маршрут. Дайте мне знать, если это поможет вам!

2
ответ дан 17 December 2019 в 18:16
поделиться

Вот как я это сделал ...

Во-первых, я не пытаюсь использовать метод URL-адресов, созданных на основе маршрута. Кроме того, я не собираюсь в той же степени, что и вы, проверять форматирование параметров даты. Поскольку я автоматически генерирую метки даты и создание URL, меня не беспокоит правильность формата, я просто форматирую объект ActiveSupport :: TimeWithZone.

Начнем с соответствующего маршрута:

  map.post_by_date 'content/:year/:month/:day/:slug', 
                  :controller => 'posts',
                  :action     => 'show_by_date_slug'

Поскольку я не хотел беспокоиться о форматировании аргументов или повторении, я создал вспомогательный метод и включил вспомогательный метод в соответствующий контроллер:

  def pubdate_slug_url(post)
    year   = post.published_on.strftime('%Y')
    month  = post.published_on.strftime('%m')
    day    = post.published_on.strftime('%d')

    url    = "/" + ["content", year, month, day, post.slug].join("/")

    return url
  end

Наконец, на мой взгляд, я просто вызываю метод, передавая свой объект Post:

  <h2><%= link_to post.headline, pubdate_slug_url(post) %></h2>

Я получаю такой URL-адрес: http://wallscorp.us/content/2009/12/06/links

Ура.

1
ответ дан 17 December 2019 в 18:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: