Ruby on rails 活动登记表
这里的新手 我正在尝试创建一个事件注册页面,任何人都可以注册一个事件,而无需登录系统 我的问题是试图找出如何将注册信息与特定事件联系起来。我已经创建了所有关联,但不知道如何告诉db此人正在注册特定事件 以下是我的联想: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
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 %>