2016-04-11 22 views
1

Kullanıcılarla bir uygulama oluşturuyorum. Benim UsersController, show yöntemine sahiptir. Böylece, id = 1 numaralı kullanıcıya /users/1 numaralı telefondan ulaşılabilir.Raylar: denetleyiciye bir eylem ekleyin

Benim routes.rb dosya :users kaynakları içerir. Bu nedenle,, id = 1 ile kullanıcı için edit sayfasını oluşturur.

Neyi başarmaya çalıştığım yeni bir işlem oluşturmaktır, bu da herhangi bir kullanıcı için /users/USER_ID/request numaralı telefona ulaşma isteğine izin verir.

Bunu nasıl yaparım? Yardımı şimdiden takdir edin!

cevap

1

İlk önce aşağıdaki r'yi oluşturun. oute (routes.rb):

get '/users/:id/request' => 'users#request', as: :user_request 

İkincisi, UsersController bir request yöntemi ekleyin:

def request 
    @user = User.find params[:id] 
    # do your thing 
end 

Çok sevdiği görünümlerinde bu URL'ye bir bağlantı oluşturabilirsiniz: <%= link_to 'Request', user_request_path(@user.id) %>

+0

Bu onu çözdüm. Çok teşekkürler! –

+0

Cevabımı kabul edilebilir olarak işaretler misiniz? Bu, benzer bir sorunu olan kişilerin daha hızlı bir çözüm bulmasını kolaylaştıracaktır. –

0

"Denetleyicide denetleyici" ne demek istediğinizden emin değilsiniz. Yukarıdaki istek, resources rotanıza bir blok geçirerek mümkün olabilir.

routes.rb

resources :users do 
    put :process_request, on: :member 
end 

Kullanıcılar Kontrolör:

Ancak request olan eylem denetleyicisi yaygın olarak kullanılan bir yöntemdir çünkü bir eylem adı olarak "isteği" kullanımı çok tehlikeli

def process_request 
    # ... 
end 
İlgili konular