Обучение Rails 4, одна длинная html-страница, добавление формы для связи с нами

0

Я работаю над своим простым персональным веб-сайтом, мне нравится рубины на рельсах, и я использую рельсы 4. У меня есть одна страница, которая называется только home.html.erb, вроде как прокручивающаяся страница. Теперь в нижней части этой страницы я хочу добавить контактную форму, где кто-то может указать свое имя, ячейку, другие данные, сообщение и отправить посылку. Большинство учебников, которые я нашел в этом разделе, в основном генерируют новую страницу и новый контроллер, я этого не хочу.

Как я могу достичь этого на той же странице, на которой я работаю?

  • 0
    По сути, вы просто делаете то, что будет делать учебное пособие, но вместо использования нового контроллера добавьте материал в конец вашего домашнего. Единственное, что находится за пределами этого контроллера, это отправка его, вы можете отправить его на другой контроллер (чтобы обработать данные и затем перенаправить вас обратно домой)
Теги:

3 ответа

1
Лучший ответ

Вы можете добавить форму снизу, используя рельсы, создающие помощники, и отправьте информацию на сервер через ajax

  • 0
    Спасибо, хорошее вступление в этот мир.
0

Легко добавить форму в нижнюю часть страницы, просто разместив HTML-код, который вы могли бы использовать на своей собственной странице, в нижней части главной страницы. Аналогичным образом вы можете поместить инструкции для того, что делать с данными в вашем основном контроллере, без каких-либо проблем.

То, что было бы труднее избежать, - это необходимость создания новой модели, поэтому у вас есть таблица для хранения этой информации - если вы не напишете ее в txt файл или не отправите ее по электронной почте.

Вот код для создания формы, не связанной с моделью:

<% form_tag(:action => 'contact_me') %<
<table>
<tr>
  <td><%= label_tag(:name) %></td>
  <td><%= text_field_tag(:name) %></td>
</tr>
<tr>
  <td><%= label_tag(:cell) %></td>
  <td><%= text_field_tag(:cell) %></td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td><%= submit_tag("Send Info") %></td>
</tr>
</table>

Если вы планируете создать модель:

<% form_for(:contact_me, :url => {:action => 'create', :controller => 'main'}) do |f| %>
<table>
<tr>
  <td><%= f.label(:name) %></td>
  <td><%= f.text_field(:name) %></td>
</tr>
<tr>
  <td><%= f.label(:cell) %></td>
  <td><%= f.text_field(:cell) %></td>
</tr>
<tr>
  <td>&nbsp;</td>
  <td><%= submit_tag("Send Info") %></td>
</tr>
</table>

Последнее проще, потому что ваш контроллер может просто быть:

def create
  @contact = Contact.new(contact_params)
  @contact.save
  redirect_to(:action => 'main')
end

private

def contact_params
  params.require(:contact_me).permit(:name, :cell)
end
0

проверьте это railscast. Хотя это не Rails 4, он все равно должен работать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню