Rails 4强参数错误:没有将符号隐式转换为字符串

Yuj*_* Wu 2 strong-parameters ruby-on-rails-4

我将数据从电子表格导入到应用程序数据库.

数据按行解析.每个解析的行看起来像:

{:department=>{
  :school=>"Graduate School of Business",
  :name=>"Graduate School of Business",
  :program=>"MBA Program",
  :url=>"http://www.gsb.stanford.edu/mba",
  :intro=>"The Stanford MBA Program is a two-year, full-time, residential program.",
  :students_number=>"Approximately 80 annually",
  :students_with_aids_number=>nil,
  :gre_scroe=>nil,
  :toefl_score=>nil,
  :world_rank=>nil,
  :us_rank=>nil,
  :without_aid_deadline=>nil,
  :with_aid_deadline=>nil,
  :salary=>nil,
  :institute_id=>1}
}
Run Code Online (Sandbox Code Playgroud)

要创建一个部门:

 # att is the hash shown above
    department = Department.new(department_params(att))
    if !department.save
        puts "Error: \n department can't be save: #{department.errors.full_messages}"
    end

 def department_params params
   params.require(:department).permit(:name,:url,:institute_id)
 end
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

no implicit conversion of Symbol into String
Run Code Online (Sandbox Code Playgroud)

哪个指向

params.require(:department).permit(:name,:url,:institute_id)
Run Code Online (Sandbox Code Playgroud)

我该怎么办呢?谢谢!

Mai*_*tel 5

让rails-api和strong_parameters一起工作

我认为它会非常相似.您只需要包含ActionController::StrongParameters不需要链接问题中描述的内容.

在我的情况下,它添加了新的初始化程序

ActionController::API.send :include, ActionController::StrongParameters
Run Code Online (Sandbox Code Playgroud)