Как подключить кнопку отправки к моей базе данных rails и сохранить ее? - PullRequest
0 голосов
/ 26 сентября 2019

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

Я попытался указать параметры (@message), пытаясь быть конкретными

Вот строки для кнопки:

<%= link_to 'Submit', messages_path(@message), method: :post, class: 'btn-submit' %>

Вот контроллер:

def create
    Message.create(message_params)
    redirect_to root_path
end

В настоящий момент страница просто перезагружается без сохранения данных.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

также вы должны проверить, какой URL отправляет форма в вашей консоли rails

Вы можете проверить, какие пути у вас есть, запустив в терминале

rake routes | grep message

это должно вернуть все маршруты, которые содержат сообщение.убедитесь, что он идет в правильном направлении и соответствует!

0 голосов
/ 26 сентября 2019

Было бы очень полезно, если бы вы приложили код вашей модели Message и файл routes.rb.Но в любом случае ... Я попытаюсь объяснить.

Обычно разработчики используют формы для отправки данных.Для создания Message объекта вам необходимо передать некоторые данные из вашего представления. Подробнее о формах .Ваше представление должно выглядеть следующим образом:

<%= form_for @message do |f| %>
  <%= f.text_field :text, class: 'form-control' %> // you need to change it t be a field of your Message model
  <%= f.submit "Submit", class: 'btn-submit' %> // this is your submit button
<% end %>

в вашем контроллере добавить условия, чтобы проверить, было ли создано сообщение. Дополнительная информация

def create
  if Message.create(message_params)
    redirect_to root_path # redirect to root path if message created
  else
    render :new # render action :new in case of errors.
  end
end

Обязательно передайте все данные, необходимые для прохождения Message модель проверки , если у вас есть какие-либо.

Я надеюсьэто поможет

...