gpt4 book ai didi

ruby-on-rails - 处理独特的错误

转载 作者:行者123 更新时间:2023-12-03 08:31:51 25 4
gpt4 key购买 nike

因此,我有一个名为Awards的数据库。

用户可以“奖励”配方,但是只能执行一次。奖励数据库由配方ID和用户ID组成。我使这两个列都具有唯一性,因此它不允许您多次授予配方。这可以正常工作,如果您尝试第二次授予配方,则会出现此错误:

columns user_id, recipe_id are not unique

我是否可以在创建 Action 中添加一些代码来检查此错误,然后呈现Flash错误消息(例如“已授予配方”)而不显示错误控制台?

这是我的创建方法:
def create
@award = current_user.awards.build(award_params)
if @award.save
flash[:success] = "Award Given!"
redirect_to recipe_path(params[:recipe_id])
else
render 'static_pages/home'
end
end

谢谢,

麦克风

最佳答案

您正在碰上一整个栏目,称为验证。文档在这里:link。为了使您基本设置,可以执行以下操作:

# award.rb
class Award < ActiveRecord::Base
validates_uniqueness_of :user_id, :recipe_id
end

# awards_controller.rb
def create
@award = current_user.awards.build(award_params)
if @award.save
flash[:success] = 'Award Given!'
redirect_to recipe_path(params[:recipe_id])
else
flash[:error] = 'There was an error awarding this award!'
render 'static_pages/home'
end
end

关于ruby-on-rails - 处理独特的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20887912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com