2012-06-13 33 views
6

Đây là một dự án hoàn toàn mới. Dưới đây là các lệnh chính xác tôi đã chạy:Tại sao Rails Controller Action Method Yêu cầu tham số

  1. rails new MyProject
  2. bundle install
  3. rails generate controller Image

Tôi đã thêm này một tuyến đường:

  1. root :to => "image#process"

Tôi đã thêm chức năng này vào ImageController (image_controller.rb)

def process 
    render :nothing => true 
end 

Và cuối cùng tôi đã gỡ bỏ mặc định index.html. Khi tôi chạy dự án, nó có một lỗi nói rằng quá trình mong đợi 0 tham số, không phải 1. Vì vậy, tôi sửa đổi phương pháp để cho tôi biết những gì tham số đang cố gắng được gửi để xử lý.

def process(arg) 
    p arg 
    render :nothing => true 
end 

Chuỗi "quy trình" được in trên màn hình. Tôi đã thực hiện một số dự án Rails trước đây và không bao giờ gặp phải điều này. Tôi đã bỏ lỡ một bước ở đâu đó? Đây có phải là một cái gì đó mới trong Rails 3.0.10? Hoặc có thể do Ruby 1.9.2 gây ra? Tôi nghĩ rằng tôi thường sử dụng 1.8.7.

Trả lời

11

Bạn không thể đặt tên cho một hành động là process, đây là phương pháp nội bộ cho bộ điều khiển đường ray, đặt tên cho nó là một cái gì đó khác.

Có một loạt các tên khác mà bạn không thể sử dụng cho các tác vụ của bộ điều khiển như hiển thị, thông số, yêu cầu. Thật không may là không có danh sách những thứ này.

+0

Ồ tôi thậm chí không nghĩ về điều đó. Cảm ơn! – Spidy

+0

Ahh .. Đã dành cho tôi rất nhiều thời gian. Cảm ơn! – rdsoze

1

Để tham khảo trong tương lai, trong trường hợp bạn không sử dụng nó, bạn có thể xem tất cả các phương pháp nội bộ và lớp học ở đây: ruby doc with nav on top right

Giúp tôi khi chọn tên.

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