设置默认值Rails
设置默认值Rails
我有一个名为"Post"的模型,以及用于创建新记录的表单。
并且我希望在"Post"模型中的"vote"变量默认值为1。我该如何实现?
我的迁移文件中使用了"change_column_default"方法。
class CreatePosts < ActiveRecord::Migration def change create_table :posts do |t| t.string :title t.string :url t.string :tags t.boolean :suit t.integer :vote, default: 1 t.timestamps null: false end change_column_default :posts, :suit, false end end
表单代码如下:
<%= form_for(@post) do |f| %> <% if @post.errors.any? %><%= pluralize(@post.errors.count, "error") %> 阻止了保存该帖子:
-
<% @post.errors.full_messages.each do |message| %>
- <%= message %> <% end %>
在Rails中设置默认值的问题,通常出现的原因是需要更改数据库表中某个字段的默认值。解决方法是创建一个新的迁移,并在迁移文件中定义对应的修改操作。
首先,在终端中运行以下命令以创建一个新的迁移文件:
rails g migration change_vote_default_in_posts
然后,在迁移文件中添加以下代码:
class ChangeVoteDefaultInPosts < ActiveRecord::Migration def up change_column_default :posts, :vote, 1 end def down change_column_default :posts, :vote, nil end end
接着,在终端中运行以下命令以执行迁移操作:
rake db:migrate
通过以上步骤,就可以成功修改数据库表中某个字段的默认值。