В Rails 3 как я мог создать контактную форму только для БД, не используя скаффолд? - PullRequest
0 голосов
/ 16 марта 2012

Новичок в рельсах 3

Я хотел бы создать контактную форму, которую люди заполняют, ее сохраняют в БД, а затем появляется страница с благодарностью.

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

в идеале это будетсохраняйте свое состояние в сеансе или файле cookie, чтобы они могли оказаться на странице благодарности, если вернутся.

Пытались сделать это около 3 дней и читали / гуглили тонны, но между новыми маршрутамиКонтроллер redirect_to в rails3 не смог понять это.

Routes.rb

Contact::Application.routes.draw do
resources :contactees, :only => [:new, :create]
# to make sure crud doesn't have the routest I don't want

get 'contactees/submitted'

root :to => 'contactees#new'

contactees_controller.rb

ContacteesController < ApplicationControler

def share
end

def new
  @contactee = Contactee.new
end

def create
  @contactee = Contactee.new(params[:contactee])
    if @contactee.save
      redirect_to submitted_contactee
    else
      render action: "new"
    end
end

end

Просмотров

contactees
  _form.html.erb
  new.html.erb
  submitted.html.erb

1 Ответ

0 голосов
/ 16 марта 2012

Избавьтесь от представленного маршрута, он вам не нужен. Возможно, что-то вроде этого?

def new
  render :submitted if session[:contacted]
end

def create
  @contactee = Contactee.new(params[:contactee])
    if @contactee.save
      session[:contacted] = true
      render :submitted
    else
      render action: "new"
    end
end
...