2010-12-15 35 views
11

tôi sử dụng params trong điều khiển của tôi như thế này:Đường ray: Trường hợp "thông số" được xác định?

class ProductsController < ApplicationController 
    def create 
    @product = Product.new(params[:aircon]) 
    ... 
    end 
end 

params một thuộc tính của ApplicationController? Tôi đoán là không, bởi vì nó không có tiền tố @. Vì vậy, những gì thực sự params là? Tôi có thể sử dụng nó trong bất kỳ phương thức tùy chỉnh nào trong ProductsController không?

Trả lời

10

Được xác định trong ActionController :: Metal. ApplicationController kế thừa từ ActionController :: Base, mà inheirts từ ActionController :: Metal. Nếu bạn nhìn vào API Rails tại http://api.rubyonrails.org/, bạn sẽ tìm thấy params chỉ là một hàm trả về các tham số của đối tượng request.

7

Các tham số thực sự được phân tích cú pháp trong phần mềm trung gian có tên là ActionDispatch::ParamsParser. Hàm params trong ActionController::Metal là một trình bao bọc cho việc này.

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