33297


下記エラー: `undefined method `errors' for nil:NilClass` 。  
[![画像の説明をここに入力](https://i.stack.imgur.com/qGKZT.png)](https://i.stack.imgur.com/qGKZT.png)  
  
  
スペルミス無し。  
  
  
暗中模索の結果、article_controller.rb の def new に @article = Article.new
追記でエラーは出なくなった。  
  
  
→ ▶︎今度は validation のメッセージが重複して出現。  
[![画像の説明をここに入力](https://i.stack.imgur.com/bAHUN.png)](https://i.stack.imgur.com/bAHUN.png)  
  
  
▶︎models/article.rb

[code]

    class Article < ApplicationRecord
        validates :title, presence: true, length: {minimum: 5}
    end
    
[/code]

▶︎articles_controller.rb

[code]

    class ArticlesController < ApplicationController
        def index
            @articles = Article.all
        end
        def show
            @article = Article.find params[:id]
        end
        def new
            @article = Article.new
        end
        def create
            @article = Article.new(article_params)
                if @article.save
                    redirect_to article_path(@article)
                else
                    render 'new'
        end
        end
        def article_params
            params.require(:article).permit(:title, :text)
        end
    end
    
[/code]

▶︎views/articles/new.html.erb

[code]

    新規記事作成
    <%= form_for :article, url: articles_path do |f| %>
        <% if @article.errors.any? %>
            <%= @article.errors.count %>個のエラーあり
                <%= @article.errors.full_messages.each do |msg| %>
                    <%= msg %>
                <% end %>
        <% end %>
        <%= f.text_field :title %>
        <%= f.text_area :text %>
        <%= f.submit %>
    <% end %>
    
[/code]

  
  
["Title can't be blank", "Title is too short (minimum is 5
characters)"]内の記述（不要）がどこからきているのか、検証の見方、回避する方法、をどなたかご教示いただけますと幸いです。


CC BY-SA 3.0
2017-03-13T16:16:05.707
33296
2017-03-14T00:37:34.700
2017-03-14T00:37:34.700
19110
20591
question
ruby-on-rails
正体不明の重複メッセージ


イコールを削除して `<% @article.errors.full_messages.each do |msg| %>`
としてください。(イコールを付けると、評価した値をその場所に展開します。)

※はじめのうちは scaffold で雛形を作るのがオススメです。


CC BY-SA 3.0
2017-03-13T17:12:53.607
33297
2017-03-13T17:12:53.607
76
33296
answer