Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4验证关联的模型id_Ruby On Rails_Ruby_Activerecord_Models - Fatal编程技术网

Ruby on rails Rails 4验证关联的模型id

Ruby on rails Rails 4验证关联的模型id,ruby-on-rails,ruby,activerecord,models,Ruby On Rails,Ruby,Activerecord,Models,假设我有一本模型书 class Books < ActiveRecord::Base belongs_to :library has_many :pages validates :library_id, presence: true end 当我执行类似于book.library的操作时,如何修复我遇到的nil异常,NoMethodError undefined methodlibraryfor nil:NilClass 或者换句话说,我如何确保在将书籍链接到图书馆之前,li

假设我有一本模型

class Books < ActiveRecord::Base
  belongs_to :library
  has_many :pages
  validates :library_id, presence: true
end
当我执行类似于
book.library
的操作时,如何修复我遇到的nil异常,NoMethodError undefined method
library
for nil:NilClass


或者换句话说,我如何确保在将书籍链接到图书馆之前,
library\u id
不是
nil
,并且它存在于数据库中?
验证:library\u id,presence:true不应该已经解决了吗?

您已经验证了library\u id。这对于书籍来说已经足够了。 你需要做的是确保有书的图书馆不能被删除

以下是一个例子:

def destroy
  @library = Library.find params[:id]
  if @library.books.blank?
    @library.destroy
    redirect_to libraries_path
  else
    redirect_to library_path(@library)
  end
end

你已经验证了图书馆id。这足够买书了。 你需要做的是确保有书的图书馆不能被删除

以下是一个例子:

def destroy
  @library = Library.find params[:id]
  if @library.books.blank?
    @library.destroy
    redirect_to libraries_path
  else
    redirect_to library_path(@library)
  end
end

你已经验证了图书馆id。这足够买书了。 你需要做的是确保有书的图书馆不能被删除

以下是一个例子:

def destroy
  @library = Library.find params[:id]
  if @library.books.blank?
    @library.destroy
    redirect_to libraries_path
  else
    redirect_to library_path(@library)
  end
end

你已经验证了图书馆id。这足够买书了。 你需要做的是确保有书的图书馆不能被删除

以下是一个例子:

def destroy
  @library = Library.find params[:id]
  if @library.books.blank?
    @library.destroy
    redirect_to libraries_path
  else
    redirect_to library_path(@library)
  end
end

调用
book.library
之前,请检查
book.library if book.library

或者在调用
Book.library
之前,将依赖销毁添加到Book model
具有多个:books,dependent::destroy
,请检查
Book.library if Book.library

或者在调用
Book.library
之前,将依赖销毁添加到Book model
具有多个:books,dependent::destroy
,请检查
Book.library if Book.library

或者在调用
Book.library
之前,将依赖销毁添加到Book model
具有多个:books,dependent::destroy
,请检查
Book.library if Book.library

或者将依赖销毁添加到图书模型
有很多:图书,依赖::销毁

在调用
Book.library
之前,您应该检查图书:

book.library if book

在调用
book.library
之前,您应该先检查一下这本书:

book.library if book

在调用
book.library
之前,您应该先检查一下这本书:

book.library if book

在调用
book.library
之前,您应该先检查一下这本书:

book.library if book

太酷了,我甚至不知道你能得到这样的父对象。是的,它应该像你说的那样工作。您可以提供一些代码和带有行号的特定错误消息吗?您也可以使用
验证是否存在:library\u id
。我还向库中添加了一个destroy子句:
有很多:books,dependent::destroy
太酷了,我甚至不知道你可以得到这样的父对象。是的,它应该像你说的那样工作。您可以提供一些代码和带有行号的特定错误消息吗?您也可以使用
验证是否存在:library\u id
。我还向库中添加了一个destroy子句:
有很多:books,dependent::destroy
太酷了,我甚至不知道你可以得到这样的父对象。是的,它应该像你说的那样工作。您可以提供一些代码和带有行号的特定错误消息吗?您也可以使用
验证是否存在:library\u id
。我还向库中添加了一个destroy子句:
有很多:books,dependent::destroy
太酷了,我甚至不知道你可以得到这样的父对象。是的,它应该像你说的那样工作。您可以提供一些代码和带有行号的特定错误消息吗?您也可以使用
验证是否存在:library\u id
。我还要向库中添加一个destroy子句:
有许多:books,dependent::destroy