RoR - добавление формы поверх статической страницы

Может кто-нибудь сказать мне, как мне добавить простую форму в моем приложении rails? Я создал форму на отдельной странице, и она отлично работает, но как мне реализовать ее на моей статической странице?

Мое приложение / views / contact / _form.html.haml

.container
  %h1 Contact
  = simple_form_for @contact, :html => {:class => 'form-horizontal' } do |f|
    = f.input :name, :required => true
    = f.input :email, :required => true
    = f.input :message, :as => :text, :required => false, :input_html => {:rows => 10}

    .hidden
      = f.input :nickname, :hint => 'Leave this field blank!'
    .form-actions
      = f.button :submit, 'Send message', :class=> "btn btn-primary"

Контроллер моих контактов:

    class ContactsController < ApplicationController

    def new
        @contact = Contact.new
    end

    def create
        @contact = Contact.new(params[:contact])
        @contact.request = request
        if @contact.deliver
            flash.now[:error] = nil
        else
            flash.now[:error] = 'Cannot send message.'
            render :new
        end
    end

end

Где я хочу добавить форму (index.html.haml)(статическая страница)

#callouts2
.callout_inner
    .wrapper
        .callout
            =render 'contacts/form'

Мои маршруты.рб

Rails.application.routes.draw do

  devise_for :users
  resources :posts do
    member do
      get "like", to: "posts#upvote"
      get "dislike", to: "posts#downvote"
    end
    resources :comments
  end

  authenticated :user do
    root 'posts#index', as: "authenticated_root"
  end

  resources "contacts", only: [:new, :create]

  root 'pages#index'

У меня также есть другая страница "Спасибо за ваше сообщение" в views/contact/create.html.haml, мне также нужно перенаправить их на эту страницу.

РЕДАКТИРОВАТЬ: я добавил =render 'contacts/form' внутри моей индексной страницы, но это дает мне ошибку:

ArgumentError в Pages#index Показывает C:/Sites/blogger/app/views/contacts/_form.html.haml, где поднялась строка #3:

Первый аргумент в форме не может содержать ноль или быть пустым. Трассировка включения шаблона: app/views/pages/index.html.haml

1 ответ

Решение

Если ваша форма называется "_form", вы можете сделать что-то вроде:

render "form"

Я не знаком с haml, не уверен, какой другой синтаксис требуется, но именно так вы добавляете форму на страницу.

Другие вопросы по тегам