Все мои f.select не сохраняют мои значения при создании (но это работает при редактировании), почему? - PullRequest
0 голосов
/ 26 мая 2018

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

Мне нужно отредактировать свою форму, выбрать снова в select и сохранить снова: tadam!это работает.Это глупо, потому что я должен делать это каждые два шага, чтобы заставить его работать.

У вас есть идея, почему?

Вот пример кода одной из моих форм:

    <%= form.select(:category_id, options_for_select(@categories, :selected => form.object.category_id), {}, {required: 'true', class: 'form-control form-control-lg custom-select'}) %>

ОБНОВЛЕНИЕ:

def create
@event = Event.new(event_params)
@event.category_id = params[:category_id]

respond_to do |format|
  if @event.save
    format.html { redirect_to @event, notice: 'Event was successfully created.' }
    format.json { render :show, status: :created, location: @event }
  else
    format.html { render :new }
    format.json { render json: @event.errors, status: :unprocessable_entity }
  end
end

end

  def new
@event = Event.new
@categories = Category.all.map{|c| [ c.name, c.id ] }
@disable_nav = true

end

Спасибо за вашу помощь, ребята:)

1 Ответ

0 голосов
/ 26 мая 2018
 <%=form.select :category_id, @categories, {}, {required: true, class: 'form-control form-control-lg custom-select'}%>

Не думаю, что вам нужно указывать :selected => form.object.category_id с f.select в качестве выборки category_id объекта f для выбора.

Отредактированный ответ: - Покая догадался при создании действия, вы не получите params[:category_id], но его params[:event][:category_id]

@event.category_id = params[:event][:category_id]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...