Nếu tôi muốn có các chức năng được gọi bên trong bộ điều khiển, tôi nên đặt chúng ở đâu?Rails 3: Chức năng gọi bên trong bộ điều khiển
Trả lời
nếu bạn muốn nó là cục bộ cho bộ điều khiển thì tất cả những gì bạn cần làm là thêm nó vào bộ điều khiển bạn muốn sử dụng.
private
def myfunction
function code.....
end
cho tất cả bộ điều khiển bạn có thể đặt bên trong bộ điều khiển ứng dụng, vì tất cả các trình điều khiển đều được phân loại phụ.
ApplicationController
protected
def myfunction
function code.....
end
Nếu bạn muốn truy cập vào quan điểm của bạn thì bạn có thể tạo ra một helper
ApplicationHelper
def myfunction
function code...
end
class YourController < ActionController::Base
def your_action
your_function
end
private
def your_function
end
end
Ngoài ra nhìn vào before_filter
và after_filter
, họ thường hữu ích bằng hiện vật như điều
Các ApplicationController là ở đây cho rằng, vì mỗi điều khiển thừa hưởng từ nó.
@jonnii, ví dụ, tôi muốn gọi một hàm trả về mã duy nhất được tạo.
Nếu mã được tạo của bạn sẽ chỉ được sử dụng trên của bạn điều khiển, đặt các chức năng bên trong một bộ điều khiển, như chức năng bảo vệ (cách dễ nhất sẽ được đặt nó bên ApplicationController).
Nếu bạn cần gọi hàm trên lượt xem, sau đó đặt nó trên trình trợ giúp, như ddayan nói.
Nếu bạn cũng cần gọi hàm từ mô hình, thì cách đơn giản nhất để làm điều đó là đặt một mô-đun bên trong thư mục/lib /.
# /lib/my_module.rb
module MyModule
def generate_code
1
end
end
Bạn cũng sẽ cần phải bao gồm nó với một initializer:
#/config/initializers/my_module.rb
require 'my_module'
Từ thời điểm đó trở đi, bạn có thể sử dụng chức năng như thế này:
MyModule::generate_code
Nếu bạn đang làm điều này rất thường xuyên, hãy xem xét việc tạo ra một viên ngọc.
- 1. Chức năng gọi trong bộ điều khiển khác trong Yii
- 2. Gọi chức năng khác trong cùng một bộ điều khiển?
- 3. Rails 3: @template biến bên trong bộ điều khiển là nil
- 4. Rails 3 - Cắt ngắn trong bộ điều khiển?
- 5. Liên hệ chức năng trong Rails 3
- 6. CodeIgniter, biết điều khiển mà được gọi là chức năng
- 7. Spring MVC, gọi bộ điều khiển khác từ Bên trong bộ điều khiển
- 8. Phương thức trợ giúp gọi từ bộ điều khiển Rails 3
- 9. Rails 3 override Vạch phiên điều khiển
- 10. Cách gọi một bài viết khác cho một bộ điều khiển khác trong Rails Functional Test
- 11. Hiển thị biểu mẫu từ bộ điều khiển khác trong Ruby on Rails 3
- 12. Khi nào sử dụng bộ điều khiển Bộ điều khiển không dây (Bộ điều khiển không đồng bộ, servlet 3)
- 13. Cách nhận phản hồi của bộ điều khiển từ bên trong bộ điều khiển khác?
- 14. Tạo các chức năng điều khiển chung
- 15. Tham số liên tục trong bộ điều khiển Rails
- 16. Có cách nào để đạt được grep như chức năng về sản lượng bên trong Rails Bảng điều khiển
- 17. Đường ray 3 URL không có tên bộ điều khiển
- 18. Cách truy cập bộ điều khiển khác từ bên trong bộ điều khiển Symfony2
- 19. Chức năng gọi hàm javascript bên trong thẻ HTML
- 20. Cách tạo URI bên trong bộ điều khiển trong Spring 3
- 21. Bộ điều khiển khởi tạo .NET MVC bên trong bộ điều khiển khác
- 22. Chức năng gọi với "điều này"
- 23. Đường dẫn hoặc nút Rails 3 thực thi tác vụ trong bộ điều khiển
- 24. Góc ng-click với cuộc gọi đến một chức năng điều khiển không hoạt động
- 25. Xác thực Rails từ bộ điều khiển
- 26. Vòng đời bộ điều khiển Rails
- 27. Sử dụng vệ sinh trong bộ điều khiển Rails
- 28. Không thể đọc tập tin với chức năng send_file trong Rails 3
- 29. vim - chức năng gọi bên trong biểu thức 'thay thế'
- 30. Gọi AJAX để hiển thị một phần trong Rails 3
Vui lòng cung cấp thêm thông tin, bạn có muốn nó có sẵn cho tất cả các bộ điều khiển không? – ddayan
Loại chức năng nào? – jonnii
@ddayan, có cho tất cả các bộ điều khiển nhưng tôi rất vui khi biết cách giới hạn cho một bộ điều khiển. Ví dụ: – donald