У меня есть три таблицы: рецепты, альбомы для вырезок и scrapbook_entries.Как сделать форму для добавления в таблицу соединений
Моего scrapbook_entries является объединение таблицы, содержащей (: recipe_id и: scrapbook_id)
Рецепта и записки уже существуют, и я пытаюсь сделать форму, которая позволяет пользователю выбрать альбом для вырезок (из current_user.scrapbooks) а затем нажмите «сохранить», который примет текущий рецепт (форма будет в режиме рецепта) и добавьте scrapbook_id и recipe_id в таблицу scrabook_entries.
У меня уже есть модель scrapbook_entries и контроллер. Мой контроллер выглядит следующим образом:
class ScrapbookEntriesController < ApplicationController
def create
@recipe = current_user.recipes.find(params[:recipe_id])
@scrapbook = current_user.scrapbooks.find(params[:scrapbook_id])
@entry = current_user.scrapbook_entries.build(scrapbook: @scrapbook)
if @entry.save
flash[:success] = "Added '#{@recipe.name}' to scrapbook '#{@scrapbook.name}'"
else
flash[:error] = "Could not add to scrapbook"
end
redirect_to @recipe
end
end
Моя форма в окне рецепта выглядит следующим образом:
<%= form_for(@scrapbook_entry, :url => scrapbook_entries_path(params[:id])) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.number_field :scrapbook_id, placeholder: "Scrapbook ID" %>
<%= f.hidden_field :recipe_id, :value => @recipe.id %>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
Как вы можете видеть в данный момент пользователь просто должен ввести scrapbook_id он/она хочет сохраните его. В конечном итоге я бы хотел добавить список вырезок в избранном поле, но у меня были проблемы с этим, поэтому любые предложения были бы приветствованы!
Моя форма в настоящее время отображает ошибку «Не удалось найти рецепт без идентификатора» в контроллере после нажатия кнопки «Отправить». Любые идеи, что я делаю неправильно здесь?
EDIT:
scrapbook.rb
belongs_to :user
has_many :recipes, through: :scrapbook_entries
has_many :scrapbook_entries
recipe.rb
belongs_to :user
has_many :scrapbooks, through: :scrapbook_entries
scrapbook_entry.rb
has_one :recipe
has_one :scrapbook
Это сработало Я имею идентификатор рецепта, но теперь я получаю сообщение «Не могу найти рецепт с id = 357 [WHERE» recipes. "User_id" =?] "Ошибка? – MikeHolford
Какова ценность 'current_user'? – jonahb
current_user имеет пользователя, прикрепленного к нему, если это то, что вы просите? Ввод в current_user в оболочку ошибок дает мне хэш подписанного пользователя – MikeHolford