настройка маршрута rails3 с несколькими параметрами - PullRequest
3 голосов
/ 05 сентября 2011

Что у меня есть

match "/home/markread/:id" => "books#markread"

идет на

def markread
  #mark params[:id] as read
end

Что я хочу

Что если яЯ хочу передать другой параметр, чтобы URL выглядел как /home/markread/1/didread=read или /home/markread/1/didread=unread

, поэтому мой метод изменится на

def marked
  #mark params[:id] as params[:didread]
end

Вопрос

как должен выглядеть мой routes.rb для этого?

Ответы [ 3 ]

5 голосов
/ 05 сентября 2011

Как насчет просто изменить на

match "home/markread/:id/used=:used" => "books#markread"
3 голосов
/ 05 сентября 2011

Дайте маршруту имя, используя опцию «as», и передайте необязательные параметры столько раз, сколько вы хотите.

Например:

match "/home/markread/:id" => "books#markread", :as => 'markread'

Это даст вам такие помощники, как1006 * и markread_url.Вы можете передать parameters like markread_path(:id => 1, :other => 'value' ...)

. Вам необходимо выполнить проверки в контроллере для этого действия, независимо от того, передан определенный параметр или нет. Rails Doc.

1 голос
/ 10 мая 2016

В рельсах 4 у вас будет:

    resources :home, only: :none do
      get 'markread/:another', action: :markread, on: :member
    end

GET /home/:id/markread/:another(.:format) /home#markread

...