Многие ко многим это Rails - PullRequest
       3

Многие ко многим это Rails

0 голосов
/ 09 января 2020

Я делаю бэкэнд для приложения trello-clone, использующего Rails. У меня есть доска, которая имеет много столбцов, которые имеют много карточек. Я сделал часть столбца доски (используя пример приложения блога), и она отлично работает, но я не могу понять, как сделать часть карты столбца этим. Метод создания в контроллере карт выглядит следующим образом:

def create
 @board = Board.find(params[:board_id])
 @column = @board.columns.find(params[:column_id])
 @card = @column.cards.create(card_params)
end

Я сделал такую ​​форму для добавления карт для каждого столбца: card adding form

Код формы:

<p>
  <strong>Name:</strong>
  <%= @column.name %>
</p>

<p>
  <strong>Color:</strong>
  <%= @column.background_color %>
</p>

<h2>Add a card:</h2>
<%= form_with(model: [@board, @column, @column.cards.build], local: true) do |form| %>
  <p>
    <%= form.label :name %><br>
    <%= form.text_field :name %>
  </p>
  <p>
    <%= form.label :description %><br>
    <%= form.text_area :description %>
  </p>
  <p>
    <%= form.submit %>
  </p>
<% end %>

Итак, мой вопрос, как сделать добавление нормальной сущности для второго уровня отношения «многие ко многим»?

1 Ответ

1 голос
/ 10 января 2020

Ваш вопрос довольно двусмысленный, но я думаю, вы, вероятно, смущены этой вещью:

Добавить hidden_field для board_id, например:

  form.hidden_field :board_id, value: @board.id

Затем получите доступ к нему в контроллере обновите / создайте что-то вроде params[:column][:board_id] (проверьте параметры, чтобы быть точным) и свяжите столбец с идентификатором доски.

Вы наверняка пропускаете эту часть, но вы наверняка пропускаете больше.

Я бы предложил использовать byebug драгоценный камень и проверить параметры ha sh. Это очень поможет вам, потому что я думаю, что вам нужно проверить параметры, которые сбивают вас с толку.

Другой способ (не хороший, но более простой) к

puts "*"*100
puts params
puts "*"*100

в качестве первой строки действия создания в контроллер, чтобы увидеть, как именно ваши параметры. (Go в консоль и найдите все, что написано между двумя строками звездочек в консоли сервера)

Удачи!

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