Ruby on rails错误:param丢失或值为空

时间:2014-12-23 06:30:42

标签: ruby-on-rails ruby

我似乎无法调试此错误。我正在关注位于此处的Ruby on rails教程:http://guides.rubyonrails.org/getting_started.html

错误来自我的控制器,这里是代码:

class ArticlesController < ApplicationController

  def index
    @articles = Article.all
  end

  def show
    @article = Article.find(params[:id])
  end

  def new
  end

  def create
    @article = Article.new(params.require(article_params))

    @article.save
    redirect_to @article
  end

  private
    def article_params
      params.require(:article).permit(:title, :text)
    end
end

错误来自这一行:

@article = Article.new(params.require(article_params))

以下是我的观点,以防您需要:

<h1>New Article </h1>

<%= form_for :article, url: articles_path do |f| %>
  <p>
    <%= f.label :title %><br>
    <%= f.text_field :title %>
  </p>

  <p>
    <%= f.label :text %><br>
    <%= f.text_field :text %>
  </p>

  <p>
    <%= f.submit %>
  </p>

<% end %>

2 个答案:

答案 0 :(得分:0)

应该是

@article = Article.new(article_params)

因为您已经允许article_params方法

中的属性

答案 1 :(得分:0)

请注意您已写过

@article = Article.new(params.require(article_params))

然而它应该是

@article = Article.new(params.require[article_params])

即。 []而不是围绕article_params的。(