gpt4 book ai didi

ruby-on-rails - Ruby Rails - 在现有数据库中添加一个 bool 复选框列以及我如何使用它

转载 作者:行者123 更新时间:2023-12-02 17:39:58 25 4
gpt4 key购买 nike

如何向现有数据库添加默认值为 false 的 bool 值 true false 列? (让我们说 user_agreement 的复选框)

我现有的表:

create_table "users", :force => true do |t|
t.string "name"
t.string "email"
end

之后我应该做什么?我应该做这样的事情吗?

html:

<%= check_box_tag "user_agreement[]" %>

Controller :

if params[:user_agreement] == '1'
user = User.find_by_id(params[:id])
user.update_attribute(:user_agreement, true)
flash[:success] = "accepted agreement"
else
user = User.find_by_id(params[:id])
user.update_attribute(:user_agreement, false)
flash[:success] = "didn't accepted agreement"
end

最佳答案

首先,您需要运行迁移以将列 user_agreement 添加到您的 User 模型:

$ rake generate migration AddUserAgreementToUsers user_agreement:boolean

打开刚刚生成的迁移文件并添加默认值false:

db/migrate/_add_user_agreement_to_users.rb

class AddUserAgreementToPeople < ActiveRecord::Migration
def change
add_column :people, :user_agreement, :boolean, default: false
end
end

运行迁移以对数据库进行更改:

$ rake db:migrate

app/controllers/users_controller.rb

如果您运行的是 Rails 4,则需要将 user_agreement 添加到您将接受的参数列表中:

private

def user_params
params.require(:user).permit(:name, :email, :user_agreement)
end

最后将 user_agreement 添加到您的表单中。

app/views/users/_form.html.erb

<%= form_for @user %>
...
<%= f.check_box :user_agreement %>
...
<% end %>

关于ruby-on-rails - Ruby Rails - 在现有数据库中添加一个 bool 复选框列以及我如何使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21889353/

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