Ruby on rails ActionController::ParameterMissing:缺少param或该值为空:

Ruby on rails ActionController::ParameterMissing:缺少param或该值为空:,ruby-on-rails,ruby,actioncontroller,Ruby On Rails,Ruby,Actioncontroller,所以我知道有很多这样的问题,但是没有一个回答了我的问题,解决了我的问题。所以,我和这个问题相处了大约一个星期,我无法解决它!我对RubyonRails真的很陌生,但我什么都试过了。我有这个(ActionController::ParameterMissing: param丢失或值为空:opinion),我不知道如何修复它。这里有所有的代码(我是新手,所以很简单): 意见控制员: class OpinionsController < ApplicationController d

所以我知道有很多这样的问题,但是没有一个回答了我的问题,解决了我的问题。所以,我和这个问题相处了大约一个星期,我无法解决它!我对RubyonRails真的很陌生,但我什么都试过了。我有这个(ActionController::ParameterMissing: param丢失或值为空: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
class OpinionController
新的:

<h1>Opinions</h1>

<%= form_for :opinion do |f| %>
    <%= f.label :body %><br>
    <%= f.text_field :body %><br>
    <br>
    <%= f.submit "Create an option" %> 
<% end %>
意见



DB:

class CreateObservices
展示:

    <h1>Your Opinions:</h1>
<div>
    <%= @opinion.body %>
</div>
您的意见:
请帮帮我!我发疯了,因为我无法解决它!谢谢:)

意见




:opinion
更改为实例变量
@opinion

如果您的情况是将强参数更改为
params.fetch(:opinion,{}).permit(:body)
我建议在
def create
@opinion=opinion.new(opi_-params)
之间删除一个调试器,如
pry
byebug
,然后查看
params
即将出现的内容。您可能缺少
意见
,这将触发
参数丢失
错误

另外,您是通过浏览器还是通过测试获得此错误?如果您在测试中遇到此错误,可能是您的设置造成的

同时,在
opi_params
方法中尝试
params.permit(:body)

    <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 %>