Имеет много связи на столе с именем множественного числа. NameError (неинициализированная константа) - PullRequest
1 голос
/ 06 февраля 2020

Я создал таблицу с именем activities_dates, в которой я храню события activities через отношение has_many. У меня получилось несколько работать, потому что я могу получить значения, но сохраняя их, я работаю в NameError (uninitialized constant ActivityDate::Activities):

Миграция:

create_table :activities_dates do |t|
      t.references :activities, foreign_key: true, index: true
      t.date :event_date
      t.timestamps
      t.datetime :deleted_at, index: true
end

Модель:

activity.rb
class Activity < ApplicationRecord
   has_many :activities_dates, :foreign_key => "activities_id", :class_name => "ActivityDate"   



activity_date.rb
class ActivityDate < ApplicationRecord
  belongs_to :activities
  acts_as_paranoid
  self.table_name = "activities_dates"
end

В своей форме я передаю массив recurring_event_date, а затем выполняю для каждого оператора их создание. Здесь происходит фактическая «ошибка имени».

Форма: (У меня есть функция Javascript, которая добавляет несколько повторяющихся входов событий, следовательно, массив)

<% @activity.activities_dates.each_with_index do |event, idx| %>
    <div class="form-group classes-field-one-time date-field">
       <input class="form-control" type="date" name="activity[recurring_event_date][]" id="activity_event_date" value="<%= event.event_date %>">
       <button class="remove-recurring-date btn-danger"> X </button>
     </div>
<% end %>

Activity Controller @ Функция обновления

def update
 if can? :update @activity
   respond_do |format|
    if @activity.update(activity_params.except(:recurring_event_date))
        activity_params[:recurring_event_date].each do |event|
          @activity.activities_dates.create(:event_date => event) #ERROR HERE
        end

Я считаю, что некоторые соглашения об именах неверны, потому что я хочу сохранить их с помощью @activity model

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...