gpt4 book ai didi

ruby-on-rails - 如何将默认 AASM 状态添加到现有模型

转载 作者:行者123 更新时间:2023-12-04 06:21:32 26 4
gpt4 key购买 nike

我在 Rails 中有一个现有模型,我想向其中添加 AASM 状态。

根据我的理解,我应该先通过迁移将一个状态列添加到我的数据库中,然后再将一些状态添加到我的 Rails 模型中。如何根据另一列中的值设置默认状态值?

我走在正确的 rails 上吗?

最佳答案

您走在正确的 rails 上。您可以在迁移本身中设置新记录的初始状态。

或者使用 :default 选项如下。如果每条记录都具有完全相同的起始状态,这将非常有用:

# Assuming your model is named Order
class AddStateToOrders < ActiveRecord::Migration
add_column :orders, :state, :string, :default => 'new'
end

或者您可以使用一些简单的 ruby​​ 来设置添加列后每条记录的状态。如果记录的初始状态以某事为条件,则更有用。

# Still assuming your model is named Order
class AddStateToOrders < ActiveRecord::Migration
add_column :orders, :state, :string

# Loop through all the orders, find out whether it was paid and set the state accordingly
Order.all.each do |order|
if order.paid_on.blank?
order.state = 'new'
else
order.state = 'paid'
end
order.save
end
end

关于ruby-on-rails - 如何将默认 AASM 状态添加到现有模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12111627/

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