0

在我们的客户模型(rails 3.2.12)中,方法find_customers定义如下:

def find_customers
      customers = Customerx::Customer.scoped  
      customers = customers.where("sales_id = ?", sales_id_s) if sales_id_s.present?
      customers
end

sales_id_s是通过params[:customer][:sales_id_s]视图表单传入的。我们希望使用相同的find_customers方法在客户控制器索引操作中返回客户。代码是:

def index

      if has_index_individual_right?('customerx_customers')
        params[:customer][:sales_id_s] = session[:user_id]
        customer = Customerx::Customer.new(params[:customer])
        @customers = customer.find_customers
      else
        ......
      end
      ......
end

但是代码params[:customer][:sales_id_s] = session[:user_id]会导致错误:undefined method[]=' for nil:NilClass`。在调试中,params[:customer] 返回 nil。

有没有办法params[:customer]在索引操作中创建对象以便我们可以调用模型方法find_customers

谢谢您的帮助。

4

1 回答 1

2

您可以通过使用它来确保它存在(并且是一个哈希)params[:customer] ||= {}

于 2013-02-23T22:57:55.487 回答