2017-10-16 61 views
-2

如何解決這個錯誤:路由錯誤未定義的方法`<」的零:NilClass在軌

[![在這裏輸入的形象描述] [1] [1]

我想設置自定義的驗證方法,模型,但我得到

Routing Error undefined method `<' for nil:NilClass

這是本文的模型代碼

# article.rb 
class Article < ActiveRecord::Base 
    validates_presence_of :category_id, :title, :body, :is_publish, :publish_date, :feature_image_url 
    validates_numericality_of :category_id, greater_than: 0 
    validates_length_of :title, minimum: 5 
    validates_length_of :body, within: 5..200 
    validates_uniqueness_of :title 

    validate :publish_date_cannot_be_more_than_one_month_from_today 
    def publish_date_cannot_be_more_than_one_month_from_today 
     if publish_date > (Date.today + 1.month) 
      errors.add(:publish_date, "Can't be more than 1 month from today") 
     end 
    end 
end 

This is code for articles_controller.rb articles_controller.rb

class ArticlesController < ApplicationController 
    def index 
     @articles = Article.all 
    end 
    def new 
     @article = Article.new 
    end 
    def create 
     @article = Article.new(article_params) 
     if @article.save 
      redirect_to articles_path 
     else 
      render action: "new" 
     end 
    end 
    def show 
     @article = Article.find(params[:id]) 
     @category = Category.find(@article.category_id) 
    end 
    def edit 
     @article = Article.find(params[:id]) 
    end 
    def update 
     @article = Article.find(params[:id]) 
     if @article.update_attributes(article_params) 
      redirect_to articles_path 
     else 
      render action: "new" 
     end 
    end 
    def destroy 
     @article = Article.find(params[:id]) 
     @article.destroy 
     redirect_to articles_path  
    end 
    a = Article.new 

    a.publish_date_cannot_be_more_than_one_month_from_today 
    private 

    def article_params 
     params[:article].permit(:title, :body, :is_publish, :publish_date, :category_id, :feature_image_url) 
    end 
end 
+2

添加您的文章模型的問題,並使用代碼(文本),而不是圖像。 –

+1

你可以添加一些代碼片段嗎?具體的文章模型和文章控制器 –

+0

如何解決這個問題?有人可以告訴我 –

回答

1

從您的文章controller.Its這兩行你的行動外

a = Article.new 

a.publish_date_cannot_be_more_than_one_month_from_today 
+0

哦!我甚至沒有注意到這一點。很好趕上 – Cyzanfar

+0

是的,它的工作,謝謝 –

相關問題