dee*_*our 10 ruby-on-rails rails-api strong-parameters
包括时
gem 'strong_parameters'
gem 'rails-api'
Run Code Online (Sandbox Code Playgroud)
在一起的我Gemfile
,呼吁params.require
像
private
def user_params
params.require(:user).permit(:first_name, :last_name)
end
Run Code Online (Sandbox Code Playgroud)
在require()
通话中出现以下错误失败.
TypeError:
can't convert Symbol into String
Run Code Online (Sandbox Code Playgroud)
回溯显示strong_parameters
' ActionController::StrongParameters
' require()
方法永远不会被击中.
dee*_*our 33
我在这个上花了太长时间,所以我想我会在这里分享,希望能节省一些时间.
上面的错误来自于调用时执行的require()
方法ActiveSupport::Dependencies::Loadable
params.require(:user)...
Run Code Online (Sandbox Code Playgroud)
strong_parameters
注入ActionController::StrongParameters
到ActionController::Base
在底部此文件与
ActionController::Base.send :include, ActionController::StrongParameters
Run Code Online (Sandbox Code Playgroud)
该rails-api
宝石需要你的应用程序的ApplicationController
扩展ActionController::API
支持ActionController::Base
应用程序控制器不知道任何事情,ActionController::StrongParameters
因为他们没有扩展类ActionController::StrongParameters
包含在内.这就是require()
方法调用没有调用实现的原因ActionController::StrongParameters
.
要讲述就像在文件中添加以下ActionController::API
内容ActionController::StrongParameters
一样简单config/initializers
.
ActionController::API.send :include, ActionController::StrongParameters
Run Code Online (Sandbox Code Playgroud)
小智 5
这个问题可以通过在Gemfile中包含rails_api master git branch来解决,如下所示:
gem 'rails-api', git: 'https://github.com/rails-api/rails-api.git', branch: 'master'
Run Code Online (Sandbox Code Playgroud)
rails_api gem 通过在api.rb中包含以下行来修复此问题
if Rails::VERSION::MAJOR == 4
include StrongParameters
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4914 次 |
最近记录: |