我正在尝试在我的模型中设置一个 Create 操作,它首先根据我拥有的参数检查数据库中是否已经存在一个对象。如果有,我想重定向到该对象的显示页面。如果没有,我想使用参数创建一个对象。我将如何做到这一点以及完成它的最佳“Rails 方式”是什么?我尝试了 find_or_create_by 但最终在我的数据库中出现了重复的条目,这正是我想要避免的。
到目前为止,这是我的创建操作:
def create
@book = Book.new(book_params)
if @book.save
redirect_to @book
else
# do something else
end
end
我的参数是这样设置的:
def book_params
params.require(:book).permit(:title, :author, :isbn, :description)
end
我还对 :isbn 进行了唯一性验证。
validates :isbn, presence: true, length: { is: 13 }, uniqueness: true, numericality: true
谢谢。