2011-01-19 23 views
5

Tôi muốn xác định phương thức trợ giúp, my_method, sẽ có sẵn trong các phương thức BuyersController (như index, create, e.t.c.).Đường ray: Nơi để xác định phương thức trợ giúp sẽ có sẵn cho một số bộ điều khiển?

Tôi cố gắng để xác định nó trong app/helpers/application_helper.rb nhưng nó đã không làm việc:

undefined method `my_method' for #<BuyersController:0x26df468> 

Nó phải ở trong một số nơi được chia sẻ bởi vì tôi muốn sử dụng nó trong các bộ điều khiển khác cũng có. Đây là lý do tại sao tôi đã thử app/helpers/application_helper.rb.

Nơi thích hợp để xác định nó là gì?

Trả lời

11

Nó phải ở trong app/controllers/application_controller.rb

Các app/helpers/application_helper.rb là dành cho chia sẻ xem người giúp đỡ.

+4

Tôi nghĩ rằng Misha đang yêu cầu các phương thức có sẵn cho bộ điều khiển ** và ** lượt xem. Một phương thức trong 'ApplicationController' sẽ có sẵn cho tất cả các bộ điều khiển nhưng không có sẵn cho các khung nhìn của chúng. – edgerunner

+0

Thực ra, tôi không quan tâm đến các phương pháp cho chế độ xem. –

1

Bạn nên bao gồm mô-đun trợ giúp ứng dụng trong trình điều khiển ứng dụng của mình để các phương thức của nó sẽ có sẵn ở mọi nơi (tất cả các bộ điều khiển và chế độ xem) trong khi yêu cầu.

class ApplicationController < ActionController::Base 
    helper ApplicationHelper 
    … 
end 

Xem các tài liệu API cho helper phương pháp

2

Bắt đầu từ Rails 3 bạn cũng có thể gọi view_context.my_method bên trong điều khiển của bạn

Các vấn đề liên quan