căi ferate rute de rake de unde sunt ele (Programare, Ruby Pe Șine, Rute, Ruby On Rails 3.1)

runcode a intrebat.

Când tastați

 rake routes 

apar o grămadă de rute, dar unde sunt definite?????

Știu că unele sunt implicite, dar cum rămâne cu celelalte?

De exemplu, acesta este un script dintr-un controler, am încercat să scot „s” din do_something, dar nu reușesc să fac să funcționeze…. sunt definite și în altă parte?De asemenea, când iau parametri și când nu, de unde știu eu? Mulțumesc!

def hello
  redirect_to do_things_shop_path(shop)
end

def do_things
end

Comentarii

  • Rutele sunt definite în config/routes.rb fișier. –  > Por Brian.
1 răspunsuri
HungryCoder

Configurațiile de rutare Rails sunt păstrate în config/routes.rb fișier.

Luarea parametrilor depinde de multe lucruri. rake routes va arăta cu rutele iau parametri. Acțiunile membrilor vor lua parametri.

posts    GET        /posts(.:format)          posts#index
         POST       /posts(.:format)          posts#create
edit_post GET       /posts/:id/edit(.:format) posts#edit

În ultima linie, veți avea un url ca posts/:id/edit. Această cale necesită :id parametru. Puteți apela această rută în mai multe moduri. Unul dintre ele este ca:

edit_post_path(@post)

Dacă doriți să creați o acțiune personalizată, (de exemplu, în cadrul controlerului de mesaje), o puteți declara după cum urmează:

match `/posts/:id/things_with_id`, :to => 'posts#do_things_with_id', :as => 'do_things_with_id
match `/posts/things_without_id`, :to => 'posts#do_things_without_id', :as => 'do_things_without_id

Primul necesită un ID, în timp ce al doilea nu. Chemați-le în consecință:

do_things_with_id_path(@post)

do_things_without_id()

Pentru o resursă, le puteți crea cu ușurință folosind member & collection action. Acțiunea membru are nevoie de un id, în timp ce acțiunea colecție nu.

resources :posts do 
  member { get 'do_thing' }
  collection { get do_things' }
end

Sper că ați înțeles.

Apropo, trebuie să citiți următorul ghid dacă doriți să înțelegeți clar aceste acțiuni. http://guides.rubyonrails.org/routing.html