Ruby on rails 另一个:Rails 4:form中的第一个参数不能包含nil或为空

Ruby on rails 另一个:Rails 4:form中的第一个参数不能包含nil或为空,ruby-on-rails,ruby-on-rails-4,formhelper,Ruby On Rails,Ruby On Rails 4,Formhelper,我在尝试为新公司帐户创建表单时收到“表单中的第一个参数不能包含nil或为空”错误。我在这里研究了关于堆栈溢出的类似问题的答案,但它们似乎没有解决我遇到的问题,因为我确保在我的CompanyAccountsController“new action”中有一个CompanyAccount模型的实例 下面是我代码的相关部分 公司帐户控制器: class CompanyAccountsController < ApplicationController def new @com

我在尝试为新公司帐户创建表单时收到“表单中的第一个参数不能包含nil或为空”错误。我在这里研究了关于堆栈溢出的类似问题的答案,但它们似乎没有解决我遇到的问题,因为我确保在我的CompanyAccountsController“new action”中有一个CompanyAccount模型的实例

下面是我代码的相关部分

公司帐户控制器:

class CompanyAccountsController < ApplicationController
    def new
      @company_account = CompanyAccount.new
    end

    def create 
      @company_account = CompanyAccount.new(company_account_params)

      if @company_account.save
         flash[:notice] = "New customer created."
         redirect_to root_url
      else 
         flash[:error] = "Something went wrong."
         render "new"
      end
    end
 end
现在我的解决方案是使用

<%= form_for(CompanyAccount.new) do |f| %>


为了解决这个问题,正如在这里对许多类似问题的回答中所建议的那样。我确实认为这似乎有点老套,我忽略了真正的错误。如果有人能帮我解决这个问题,我将非常感激。

这里的代码是100%正确的。请检查您的应用程序控制器是否在任何地方覆盖@company\u account的值

这是控制器的全部代码吗?因为没有设置
company\u account\u params
。不,这不是全部代码。我只是没有添加company\u account\u params方法。看起来是这样的
def company_account_params.require(:company_account)。permit(:name,:state)end
只是询问一下,因为这可能是个问题。您的模型文件是什么样子的?数据库设置好了吗?您可以访问公司帐户表吗?正如@m4risU所提到的,您是否有一个回调,比如
设置公司帐户
,并让它在执行操作之前用
填充数据?如果是这样,请确保在其上设置了异常,否则只允许它填充控制器的必要方法。这可能是另一个问题。亚历山大,谢谢你的努力。回答你的问题。该模型看起来就像一个通用模型。我没有添加任何内容。数据库已经设置好,我可以从rails控制台访问company_accounts表。我没有使用回调,也没有使用任何before_操作方法。这就是我为什么如此困惑的原因。你能告诉我们错误的原因吗?(通常是20-30行文件名)这可能有助于我们确定错误的来源。ApplicationController中没有添加任何代码,只有默认代码。
company_accounts POST   /company_accounts(.:format)          company_accounts#create
new_company_account GET    /company_accounts/new(.:format)      company_accounts#new
edit_company_account GET    /company_accounts/:id/edit(.:format) company_accounts#edit
 company_account GET    /company_accounts/:id(.:format)      company_accounts#show
                 PATCH  /company_accounts/:id(.:format)      company_accounts#update
                 PUT    /company_accounts/:id(.:format)      company_accounts#update
                 DELETE /company_accounts/:id(.:format)      company_accounts#destroy
            root GET    /                                    company_accounts#index
<%= form_for(CompanyAccount.new) do |f| %>