Ошибки объединения Ruby on Rails - PullRequest
1 голос
/ 20 июля 2011

Я создаю проект объединения рельсов для многих, и при запуске new.html.erb я получаю следующие ошибки:

Table 'purchase_form_rails.account_numbers_pi_names' doesn't exist

undefined local variable or method `account_numbers' for #<#<Class:0x2a979ef4>:0x2a978770>

Extracted source (around line #34): 

(Это следует искать в базе данных purchase_form_rails и в таблицеaccount_numbers (промежуточная таблица, объединяющая pi_names и account_numbers - это pi_names_account_numbers)

Вот мой new.html.erb:

  <div class="field">

        <% for account_number in @account_numbers %>
           <input type="checkbox"
                id="<%=account_number.id%>"
                name="account_numbers_ids[]"
                value="<%=account_number.id %>"
                <%if @pi_name.account_numbers.include? tag%>checked="checked"<%end%>
         > <%=account_numbers.account_number%>
        <% end %>

  </div>

Дайте мне знать, если вам нужна дополнительная информация!

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Если вы определяете has_many: deep, то rails ожидает, что имя таблицы объединения должно быть отсортировано по алфавиту, как account_numbers_pi_names (это должно быть имя таблицы объединения, а не pi_names_account_numbers).

1 голос
/ 20 июля 2011

для многих по многим ассоциациям, соглашение rails предполагает, что таблица соединений / связей будет в альфа-порядке, вы сказали, что

промежуточная таблица, соединяющая pi_names и account_numbers, равна pi_names_account_numbers

но ошибка говорит о том, что

account_numbers_pi_names 'не существует

изменение имени таблицы с' pi_names_account_numbers 'на' account_numbers_pi_names 'должно решить проблему

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