2009-09-17 44 views
8

Tôi có một mẫu Người dùng. Nếu tôi làm:Cách xác định đường dẫn tùy chỉnh trong đường ray?

def my_action 
    @user = User.new 
end 

sau đó

<% form_for(@user) do |f| %> 

tôi nhận được

undefined method `users_path' for #<ActionView::Base:0x1b4b878> 

nào có ý nghĩa bởi vì tôi đã không ánh xạ nó đi map.resources :users. .. nhưng tôi không muốn làm theo cách này bởi vì tôi không cần tất cả các tài nguyên.

Tôi làm cách nào để xác định phương thức user_path này trong các tuyến đường của mình?

Trả lời

5

Bạn cũng có thể customize restful routes. Ví dụ trong ứng dụng của tôi chỉ các chỉ mục và hiển thị các hành động phù hợp với một số bộ điều khiển nhất định. Trong tệp routes.rb của tôi, tôi có một số tuyến đường như sau:

map.resources :announcements, :only => [:index, :show] 

Bạn cũng có thể sử dụng :except nếu điều đó phù hợp hơn.

3

Bạn có thể lập bản đồ các tuyến đường tùy chỉnh trong tập tin routes.rb của bạn như thế này ...

map.users '/users', :controller => 'user', :action => 'index' 

này mang đến cho bạn users_path helper bạn đang tìm kiếm.

+0

Cảm ơn. Đây có phải là một quy ước không? Giống như tuyến đường đến chỉ mục là model_path? – marcgg

+0

Điều này không đúng. Điều này sẽ không giải quyết hình thức gửi cos nó sẽ hành động sai. map.resources: users,: only => [: new,: create] là quy ước thích hợp. –

3

Kể từ khi tôi đến đây tìm kiếm một cách để tạo ra những người giúp đỡ trong routes.rb, đây là cách để làm điều đó:

get '/users/:id/' =>'users#show', :as => :user 
Các vấn đề liên quan