ActionController::ParameterMissing:缺少参数或值为空:
ActionController::ParameterMissing: param is missing or the value is empty:
所以我知道有很多这样的问题,但是 none 回答了我的问题并解决了我的问题。所以,我遇到这个问题大约一个星期了,我无法解决它!我对 rails 上的 ruby 真的很陌生,但我已经尝试了所有方法。我有这个 (ActionController::ParameterMissing:
参数丢失或值为 empty:opinion),我不知道如何修复它。这是所有的代码(我是新手所以真的很简单):
舆论控制者:
class OpinionsController < ApplicationController
def new
@opinion = Opinion.new
end
def create
@opinion = Opinion.new(opi_params)
@opinion.save
redirect_to @opinion
end
def show
@opinion = Opinion.find(params[:id])
end
private
def opi_params
params.require(:opinion).permit(:body)
end
end
新:
<h1>Opinions</h1>
<%= form_for :opinion do |f| %>
<%= f.label :body %><br>
<%= f.text_field :body %><br>
<br>
<%= f.submit "Create an option" %>
<% end %>
数据库:
class CreateOpinions < ActiveRecord::Migration
def change
create_table :opinions do |t|
t.string :body
end
end
end
显示:
<h1>Your Opinions:</h1>
<div>
<%= @opinion.body %>
</div>
请帮助我!我快疯了,因为我无法解决它!谢谢:)
<h1>Opinions</h1>
<%= form_for @opinion do |f| %>
<%= f.label :body %><br>
<%= f.text_field :body %><br>
<br>
<%= f.submit "Create an option" %>
<% end %>
将:opinion
改为实例变量@opinion
。
如果提交的表单字段 body
为空,也可能会出现此问题,如果是这种情况,请将强参数更改为
params.fetch(:opinion, {}).permit(:body)
我建议在 def create
和 @opinion = Opinion.new(opi_params)
之间放置一个像 pry
或 byebug
这样的调试器,看看 params
会进来什么。你可能是缺少 opinion
,这将触发 ParameterMissing
错误。
此外,您是通过浏览器还是通过测试收到此错误?如果您在测试中遇到此错误,则可能是您的设置问题。
同时,在您的 opi_params
方法中尝试 params.permit(:body)
。
所以我知道有很多这样的问题,但是 none 回答了我的问题并解决了我的问题。所以,我遇到这个问题大约一个星期了,我无法解决它!我对 rails 上的 ruby 真的很陌生,但我已经尝试了所有方法。我有这个 (ActionController::ParameterMissing: 参数丢失或值为 empty:opinion),我不知道如何修复它。这是所有的代码(我是新手所以真的很简单):
舆论控制者:
class OpinionsController < ApplicationController
def new
@opinion = Opinion.new
end
def create
@opinion = Opinion.new(opi_params)
@opinion.save
redirect_to @opinion
end
def show
@opinion = Opinion.find(params[:id])
end
private
def opi_params
params.require(:opinion).permit(:body)
end
end
新:
<h1>Opinions</h1>
<%= form_for :opinion do |f| %>
<%= f.label :body %><br>
<%= f.text_field :body %><br>
<br>
<%= f.submit "Create an option" %>
<% end %>
数据库:
class CreateOpinions < ActiveRecord::Migration
def change
create_table :opinions do |t|
t.string :body
end
end
end
显示:
<h1>Your Opinions:</h1>
<div>
<%= @opinion.body %>
</div>
请帮助我!我快疯了,因为我无法解决它!谢谢:)
<h1>Opinions</h1>
<%= form_for @opinion do |f| %>
<%= f.label :body %><br>
<%= f.text_field :body %><br>
<br>
<%= f.submit "Create an option" %>
<% end %>
将:opinion
改为实例变量@opinion
。
如果提交的表单字段 body
为空,也可能会出现此问题,如果是这种情况,请将强参数更改为
params.fetch(:opinion, {}).permit(:body)
我建议在 def create
和 @opinion = Opinion.new(opi_params)
之间放置一个像 pry
或 byebug
这样的调试器,看看 params
会进来什么。你可能是缺少 opinion
,这将触发 ParameterMissing
错误。
此外,您是通过浏览器还是通过测试收到此错误?如果您在测试中遇到此错误,则可能是您的设置问题。
同时,在您的 opi_params
方法中尝试 params.permit(:body)
。