创建与参展商和参与者的会议 rails
Create meeting with exhibitors and participants rails
我是 Ror 的新手,
我想在我的应用程序中添加一项功能,我的用户可以作为参展商(如果是卖家)或参与者(如果是客户)加入管理员创建的不同会议。
我正在使用设备,我用一个枚举来区分我的客户(未来的参与者)和我的卖家(未来的参展商)。
我花时间在这上面..不幸的是无法成功完成此功能。谢谢你的帮助。
这是我的代码:
Meeting.rb
class Meeting < ApplicationRecord
has_many :users
validates :name, presence: true
validates :start_time, presence: true
end
User.rb
has_many :meetings
会议负责人:
def participate
@meeting = Meeting.find(params[:id])
if user.client?
@participant = @meeting << current_user
@participant.save
elsif user.seller?
@exhibitor = @meeting << current_user
@exhibitor.save
end
end
def show
@meeting = Meeting.find(params[:id])
@exhibitors = User.all.participate
end
meetings/show.html.erb:
<strong>Evenement:</strong><%= @meeting.name %><br>
détails<%= @meeting.details %><br>
le: <%= @meeting.start_time.strftime("%d/%m/%Y") %><br>
adresse:<%= @meeting.address %><br>
Nombre d'exposants: <%= @exhibitors.count %><br>
<% if user_signed_in? %>
<% if current_user.seller? %>
<%= link_to participate_path, class:"btn btn-info" do %>
Reserver un stand
<% end %>
<% end %>
<% end %>
routes.rb
resources :meetings
get 'participate' => 'meetings#participate'
首先,您可能希望将路线更改为:
resources :meetings do
post :participate
end
这将生成如下 URI:
/meetings/:meeting_id/participate
然后对于您的方法,您可以不将用户推送到会议中,而是通过将会议推送到用户中来进行相反的操作,因此在您的 participate
方法中:
def participate
meeting = Meeting.find(params[:meeting_id])
current_user.meetings << meeting
end
如您所见,您不需要实例变量,或者至少对于我所看到的,但如果您需要它,只需将它带回来。
我是 Ror 的新手, 我想在我的应用程序中添加一项功能,我的用户可以作为参展商(如果是卖家)或参与者(如果是客户)加入管理员创建的不同会议。 我正在使用设备,我用一个枚举来区分我的客户(未来的参与者)和我的卖家(未来的参展商)。 我花时间在这上面..不幸的是无法成功完成此功能。谢谢你的帮助。 这是我的代码:
Meeting.rb
class Meeting < ApplicationRecord
has_many :users
validates :name, presence: true
validates :start_time, presence: true
end
User.rb
has_many :meetings
会议负责人:
def participate
@meeting = Meeting.find(params[:id])
if user.client?
@participant = @meeting << current_user
@participant.save
elsif user.seller?
@exhibitor = @meeting << current_user
@exhibitor.save
end
end
def show
@meeting = Meeting.find(params[:id])
@exhibitors = User.all.participate
end
meetings/show.html.erb:
<strong>Evenement:</strong><%= @meeting.name %><br>
détails<%= @meeting.details %><br>
le: <%= @meeting.start_time.strftime("%d/%m/%Y") %><br>
adresse:<%= @meeting.address %><br>
Nombre d'exposants: <%= @exhibitors.count %><br>
<% if user_signed_in? %>
<% if current_user.seller? %>
<%= link_to participate_path, class:"btn btn-info" do %>
Reserver un stand
<% end %>
<% end %>
<% end %>
routes.rb
resources :meetings
get 'participate' => 'meetings#participate'
首先,您可能希望将路线更改为:
resources :meetings do
post :participate
end
这将生成如下 URI:
/meetings/:meeting_id/participate
然后对于您的方法,您可以不将用户推送到会议中,而是通过将会议推送到用户中来进行相反的操作,因此在您的 participate
方法中:
def participate
meeting = Meeting.find(params[:meeting_id])
current_user.meetings << meeting
end
如您所见,您不需要实例变量,或者至少对于我所看到的,但如果您需要它,只需将它带回来。