Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Роутинг 
:(
    Опции темы
AndreyDr
Дата 26.1.2011, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



Здравствуйте, помогите пожалуйста разобраться с роутингом, создал приложение, добавил статьи их постраничное отображение с помощью will_paginate. Но теперь хочу добавить разделы к статьям и чтобы url статьи были следующего вида (/:category/:article_title), а url раздела /:category. Подскажите пожалуйста пример как такое реализовать?
Сейчас routes.rb выглядит следующим образом:
Код

app::Application.routes.draw do
  devise_for :user, :path_names => {:sign_up => "registration", :sign_in => "login", :sign_out=>"logout"}
  match '/page/:page', :to => 'articles#index'
  resources :articles
  
  root :to => "articles#index"
  devise_scope :user do
    get "/login" => "devise/sessions#new"
  end
end


PM MAIL ICQ   Вверх
DeTeam
Дата 26.1.2011, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 29.10.2009
Где: Россия, Москва

Репутация: нет
Всего: нет




Код

match '/:category/page/:page', :to => 'articles#category'
match '/:category/:title', :to => 'articles#show'

Может как-то так?

Это сообщение отредактировал(а) DeTeam - 26.1.2011, 23:31
PM MAIL WWW ICQ Jabber   Вверх
AndreyDr
Дата 27.1.2011, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



Это я знаю как прописать, но как сделать так чтобы адрес страницы генерировался в нужном формате?
PM MAIL ICQ   Вверх
DeTeam
Дата 27.1.2011, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 29.10.2009
Где: Россия, Москва

Репутация: нет
Всего: нет



то, что в Respond_to ?

может 
Код

match '/:category/page/:page(.format)', :to => 'articles#category'
match '/:category/:title(.format)', :to => 'articles#show'


либо сам запрос давать с ?format=json как-то так
PM MAIL WWW ICQ Jabber   Вверх
solenko
Дата 27.1.2011, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 1
Всего: 67



Использовать to_param
Код приблзительный без проверки:
Код

map.resources :categories do |cat|
  cat.resources :pages
end

class Category < ActiveRecord::Base
  def to_param
     self.permalink
  end
end

class Page < ActiveRecord::Base
  def to_param
     self.permalink
  end
end



--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
AndreyDr
Дата 17.2.2011, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



Для формирования ссылки вида /название_раздела/id_топика делаю следущее:
1. В routes.rb пишу
Код

resources :parts do
       resources :articles
end

2. Пока не могу разобраться как нужно переопределить to_param, чтобы <%= link_to article.title, article %> на выходе получать 
/название_раздела/id_топика
Подскажите пожалуйста пример
PM MAIL ICQ   Вверх
source777
Дата 18.2.2011, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Нет необходимости что-то переопределять... Всё и так работает отлично:

<%= link_to article.title, part_article_path(article.part, article) %>


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
AndreyDr
Дата 18.2.2011, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



В этом случае я получаю /parts/1/articles/4, а мне нужно /название раздела/id_топика
PM MAIL ICQ   Вверх
synaptic
Дата 18.2.2011, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.11.2010

Репутация: нет
Всего: нет



лучше в терминале напиши 
Код

cd Project/
rake routes


Далее найди, что тебе нужно.
примерно будет выглядеть так:
Код

category/:category_id/article/:id

Тогда тебе нужно прописать в своем view:
Код

<%= link_to article...... , category_article_path(@category.id, article.id)%>

Повторюсь, что тебе нужно это посмотреть в rake routes.

 smile 
PM MAIL   Вверх
source777
Дата 18.2.2011, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(AndreyDr @  18.2.2011,  06:50 Найти цитируемый пост)
В этом случае я получаю /parts/1/articles/4, а мне нужно /название раздела/id_топика 

Это тебе новую тему создавать надо. С такими запросами у тебя будет определённый гемморой, из-за потенциальных конфликтов между названиями разделов и контроллеров.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
AndreyDr
Дата 20.2.2011, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 22.9.2010

Репутация: нет
Всего: нет



Решил пойти по такому пути:
в routes.rb пишу:
Код

 match ':part/:id' => 'articles#show'
 match ':part/:id/edit' => 'articles#edit'
 match ':part/:id/delete' => 'articles#destroy'

формирую ссылки <%= link_to "/#{article.part.title}/#{article.id}"%>
но как сделать маршрут для update?

Это сообщение отредактировал(а) AndreyDr - 20.2.2011, 15:09
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0839 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.