如何在 Rails 上将用户名添加到 Ruby 中的预订
How to add user name to reservation in Ruby on Rails
我创建了一个预订资源。我实现了 Devise,所以当你想创建一个新的预订时,你必须登录或创建一个帐户。我想要的是在创建预订时,将当前用户的用户名分配给它,这样我就可以按用户名过滤预订。
您想使用协会,请在此处查看:https://guides.rubyonrails.org/association_basics.html
在您的 reservations
table 上,您可以通过 user_id
添加对用户 table 的引用,然后有一个 belongs_to :user
然后您可以在任何需要的地方通过 reservation.user.name
显示用户名。
要添加引用,运行 如下:rails g migration AddUserToReservations user:references
这将生成以下内容:
class AddUserToReservations < ActiveRecord::Migration
def change
add_reference :reservations, :user, index: true
end
end
和 运行 您的迁移 rails db:migrate
然后,要将用户分配给预订,您应该在 reservations_controller.rb
的 create
操作中添加这样一行:
if @reservation.save
@reservation.user = current_user
我创建了一个预订资源。我实现了 Devise,所以当你想创建一个新的预订时,你必须登录或创建一个帐户。我想要的是在创建预订时,将当前用户的用户名分配给它,这样我就可以按用户名过滤预订。
您想使用协会,请在此处查看:https://guides.rubyonrails.org/association_basics.html
在您的 reservations
table 上,您可以通过 user_id
添加对用户 table 的引用,然后有一个 belongs_to :user
然后您可以在任何需要的地方通过 reservation.user.name
显示用户名。
要添加引用,运行 如下:rails g migration AddUserToReservations user:references
这将生成以下内容:
class AddUserToReservations < ActiveRecord::Migration
def change
add_reference :reservations, :user, index: true
end
end
和 运行 您的迁移 rails db:migrate
然后,要将用户分配给预订,您应该在 reservations_controller.rb
的 create
操作中添加这样一行:
if @reservation.save
@reservation.user = current_user