gpt4 book ai didi

ruby-on-rails - Rails - 需要 current_user 信息的自定义验证

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:24 26 4
gpt4 key购买 nike

我有一个非常困难的 Rails 问题,我想寻求一些帮助。情况是这样的:

我正在为我的用户模型使用 restful 身份验证。现在,用户有一个名为“gold”的字段,它是一个数值。还有另一个名为 Book 的模型是使用脚手架创建的。

我想做的很简单,但我找不到实现它的方法。我想添加一些验证,如果用户的金币不是,比方说 100,他们就不能创建新的书籍条目(从脚手架标准 View )。

现在的问题是我需要 current_user 信息才能从我的模型中验证这一点。我需要它才能获得用户 ID,从而也获得他们的金币数量。我找不到这样做的好方法(如果有的话)。

另一个想法是通过 Controller 来实现。然而,标准的“if @book.save” block 并不允许我插入我自己的错误消息(在 scaffold create 中):

if not User.has_the_needed_gold(current_user, 100)
flash[:goldError] = 'You do not have the needed gold to create this book.'
#end


respond_to do |format|
if @book.save
flash[:notice] = 'Book was successfully created.'
format.html { redirect_to(@book) }
format.xml { render :xml => @book, :status => :created, :location => @book }
else
format.html { render :action => "new" }
format.xml { render :xml => @book.errors, :status => :unprocessable_entity }
end
end

现在,我无法输出该消息,也无法中止新书的保存。我试过将我自己的错误添加到基础中,但它被清除了(我猜是在保存之后)。我对这种情况感到很困惑,我已经搜索了几个小时但没有结果。

如果有人可以提供帮助,请提供帮助,这样可以省去我很多麻烦:)

感谢阅读!

最佳答案

您可以为 Book 定义一个 :user_gold 虚拟属性,将其设置在您有权访问 current_user 的 Controller 中,然后将其合并进入您的 Book 验证。

关于ruby-on-rails - Rails - 需要 current_user 信息的自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235898/

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