Ruby on rails 活动登记表

Ruby on rails 活动登记表,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,这里的新手 我正在尝试创建一个事件注册页面,任何人都可以注册一个事件,而无需登录系统 我的问题是试图找出如何将注册信息与特定事件联系起来。我已经创建了所有关联,但不知道如何告诉db此人正在注册特定事件 以下是我的联想: class Event < ActiveRecord::Base belongs_to :user has_many :event_regs has_many :regs, through: :event_regs class Reg < ActiveR

这里的新手

我正在尝试创建一个事件注册页面,任何人都可以注册一个事件,而无需登录系统

我的问题是试图找出如何将注册信息与特定事件联系起来。我已经创建了所有关联,但不知道如何告诉db此人正在注册特定事件

以下是我的联想:

class Event < ActiveRecord::Base
  belongs_to :user
  has_many :event_regs
  has_many :regs, through: :event_regs

class Reg < ActiveRecord::Base
  has_many :event_regs

class Reg < ActiveRecord::Base
  has_many :event_regs
class事件
提前谢谢

这里是新手

欢迎光临


以下是您需要的:

#app/models/event.rb
class Event < ActiveRecord::Base
   has_many :registrations
end

#app/models/registration.rb
class Registration < ActiveRecord::Base
   belongs_to :event
end

为了理解它是如何工作的,你最好看看外键

这是一种关系数据库原则,允许您关联不同数据库表中的两个或多个记录

由于Rails设计用于处理关系数据库,因此在某些方面,您使用的每一个数据库都需要使用“外键”

在您的情况下,我建议使用:


您需要确保将
事件id
列添加到
注册数据库中。

为什么我会想到多对多关联?!?我想这就是我在午夜努力学习(和理解)的结果。谢谢你的信息。今晚我会更深入地讨论这个问题。谢谢。这在很大程度上起了作用。注册控制器“defnew”中的一个输入错误让我陷入了一个循环,我不得不在表单中添加额外的参数代码。一旦我发现这一切都成功了!再次感谢!
#config/routes.rb
resources :events do #-> url.com/events/:id
   resources :registrations #-> url.com/events/:event_id/registrations/
end

#app/controllers/registrations_controller.rb
class RegistrationsController < ApplicationController
   def new
      @event = Event.find params[:event_id]
      @registration = @event.registration.new
   end

   def create
      @event = Event.find params[:event_id]
      @registration = @event.registration.new registration_params
   end

   private

   def registration_params
      params.require(:registration).permit(:all, :your, :params)
   end
end
#app/controllers/events_controller.rb
class EventsController < ApplicationController
   def show
      @event = Event.find params[:id]
   end
end

#app/views/events/show.html.erb
<% @event.registrations.each do |registration| %>
   # -> output registration object here
<% end %>