【问题标题】:Create meeting with exhibitors and participants rails创建与参展商和参与者的会议
【发布时间】:2018-01-15 14:40:54
【问题描述】:

我是 Ror 的新手, 我想在我的应用程序中添加一个功能,我的用户可以加入由管理员创建的不同会议,作为参展商(如果是卖家)或参与者(如果是客户)。 我正在使用设备,并通过枚举将我的客户(未来参与者)与我的卖家(未来参展商)区分开来。 我花时间在这上面.. 不幸的是不能成功地做这个功能。谢谢你的帮助。 这是我的代码:

会议.rb

class Meeting < ApplicationRecord
  has_many :users

  validates :name, presence: true
  validates :start_time, presence: true

end

用户.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

会议/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'

【问题讨论】:

    标签: ruby-on-rails view devise model controller


    【解决方案1】:

    首先,您可能希望将路线更改为:

      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
    

    如您所见,您不需要实例变量,或者至少在我所见的情况下,但如果您需要它,只需将它带回来。

    【讨论】:

    • 嗨,Kurenn,我试过你的方法。甚至这样: def 参与会议 = Meeting.find(params[:id]) current_user.meetings
    • 哦,我明白了,比我错过了阅读什么的,但是要了解参与方法只是将会议推入会议数组,保存然后重定向到索引?
    • 伟大的@kurenn 工作!和 d 的链接是:
    猜你喜欢
    • 2016-05-04
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    相关资源
    最近更新 更多