Передать входное значение в контроллер - PullRequest
0 голосов
/ 04 февраля 2019

Работая над освоением этой вещи в Rails!

У меня есть темы (например, форум), которые я пытаюсь связать с главой (категорией).Я могу перечислить доступные главы на новой странице, но когда я сохраняю, я не могу сохранить их должным образом.

themes_controller.rb

def create
    @topic = Topic.new(topic_params)
    @topic.user = current_user
    @topic.chapter = Chapter.find(params[:chapter_id])

Внутри формы

<%= f.collection_select :chapter_id, Chapter.all, :id, :name %>

Буду признателен за любую помощь!:)

1 Ответ

0 голосов
/ 04 февраля 2019

Если не возражаете, я преобразую свой комментарий в ответ, чтобы не оставить вопрос без ответа.

Посмотрите логи сервера.Полагаю, params похожи на topic: { chapter_id: 1}.Это означает, что вы можете получить доступ к нужному параметру через params[:topic][:chapter_id].Но лучшая идея - добавить chapter_id к разрешенным параметрам (topic_params).В этом случае вы можете упростить создание действия немного

# note - you can create a topic belonging to current_user in one line
def create
  @topic = current_user.topics.build(topic_params)
  if @topic.save
    redirect to topics_path
  else
    render :new
  end
end

def topic_params
  params.require(:topic).permit(:title, :text, :all_other_parameters, :chapter_id)
end

Вам необходимо использовать название главы в ссылке.Предположим, что это атрибут title:

<%= link_to topic.chapter.title, topic.chapter %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...