Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ActionController::UsersController中的参数缺失#显示_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails ActionController::UsersController中的参数缺失#显示

Ruby on rails ActionController::UsersController中的参数缺失#显示,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我希望用户注册到应用程序,但我得到下面显示的错误 ActionController::ParameterMissing in UsersController#show param is missing or the value is empty: user users\u controller.rb: def显示 @user=user.new(用户参数) 结束 def新 @user=user.new 结束 def创建 @user=user.new(用户参数) 如果@user.save fla

我希望用户注册到应用程序,但我得到下面显示的错误

ActionController::ParameterMissing in UsersController#show
param is missing or the value is empty: user
users\u controller.rb

def显示
@user=user.new(用户参数)
结束
def新
@user=user.new
结束
def创建
@user=user.new(用户参数)
如果@user.save
flash[:success]=“欢迎使用示例应用!”
将_重定向到@user
其他的
呈现“新”
结束
结束
私有的
def用户参数
参数require(:user).permit(:name,:email,:password,:password\u confirmation)

show
操作中调用
user\u params
方法时结束
,该操作要求
user
参数出现在
params
散列中。但是,对于
show
操作的相应请求,它实际上并不存在。这就是为什么会出现上述错误:

param is missing or the value is empty: user
要解决问题,请将
show
方法更改为:

def show
  @user = User.find(params[:id])
end

这只是从
params
散列中获取用户的
id
,然后使用
user.find
call从数据库中找到该用户。

这是因为您在show action中调用了user\u params。显示操作的正常请求只有一个参数是用户id。在这里调用user_params,它将搜索对应于用户模型属性的参数,然后将它们转换为新方法,但它们不存在。因此,它会给您带来错误。 我认为在表演中你只会写:

def秀
@user=user.find参数[:id]
@new_user=user.new#如果需要在show view中创建一个表单
结束

UsersController#show”内容在哪里?我打赌你在你的
UsersController#show
中的某个地方调用了
user\u params
。是的,我在UsersController#showawesome中调用了user\u params方法!很高兴这有帮助:)