Разместить запрос в рельсах 5 - PullRequest
0 голосов
/ 29 сентября 2018

Привет, у меня проблемы с заполнением данных через форму в таблицу, которую я создал в своем приложении rails.

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

Я использую resources в моем config/routes.rb файле

маршруты рейка:

                                user_leads GET    /user_leads(.:format)                                                     user_leads#index
                                           POST   /user_leads(.:format)                                                     user_leads#create
                             new_user_lead GET    /user_leads/new(.:format)                                                 user_leads#new
                            edit_user_lead GET    /user_leads/:id/edit(.:format)                                            user_leads#edit
                                 user_lead GET    /user_leads/:id(.:format)                                                 user_leads#show
                                           PATCH  /user_leads/:id(.:format)                                                 user_leads#update
                                           PUT    /user_leads/:id(.:format)                                                 user_leads#update
                                           DELETE /user_leads/:id(.:format)                                                 user_leads#destroy

app / controllers / user_leads_controller.rb:

class UserLeadsController < ApplicationController

  def index
    @user_lead = UserLead.all.order("created_at DESC")
  end

  def new
    @user_lead = UserLead.new
  end

  def create
    @user_lead = UserLead.new(user_lead_params)
  end

  private

  def user_lead_params
    params.require(:user_lead).permit(:name, :businessname, :phone, :email, :amount)
  end
end

app / views / user_leads / new.html.erb

<%= form_for :user_lead, url: user_leads_path do |u| %>
  <p>
    <%= u.label :name %>
    <%= u.text_field :name %>
  </p>

  <p>
    <%= u.label :businessname %>
    <%= u.text_field :businessname %>
  </p>

  <p>
    <%= u.label :phone %>
    <%= u.text_field :phone %>
  </p>

  <p>
    <%= u.label :email %>
    <%= u.text_field :email %>
  </p>

  <p>
    <%= u.submit %>
  </p>

<% end %>

config / rout.rb:

resources :user_leads

И вывод в моей консоликогда я делаю запрос на почту:

Started POST "/user_leads" for 127.0.0.1 at 2018-09-29 11:28:48 +0100
Processing by UserLeadsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"caJM7oMC7t3ATCnE0AyrnnKMOUi9vn7MPSj7jUadqCQZDQ9DPbUvn7pw5VMsf9+LFyAIxan9qTcBTfuwI2ygjQ==", "user_lead"=>{"name"=>"ffbgd", "businessname"=>"ret", "phone"=>"re", "email"=>"btgrfq"}, "commit"=>"Save User lead"}
No template found for UserLeadsController#create, rendering head :no_content
Completed 204 No Content in 39ms (ActiveRecord: 0.0ms)

Ответы [ 3 ]

0 голосов
/ 29 сентября 2018

Измените метод создания в контроллере на:

 def create
    @user_lead = UserLead.new(user_lead_params)

    respond_to do |format|
      if @user_lead.save
        format.html { redirect_to user_leads_path, notice: 'UserLead was successfully created.' }
        format.json { render :show, status: :created, location: @user_lead }
      else
        format.html { render :new }
        format.json { render json: @user_lead.errors, status: :unprocessable_entity }
      end
    end
  end
0 голосов
/ 29 сентября 2018

Должно быть:

def create
  @user_lead = UserLead.create(user_lead_params)
end
0 голосов
/ 29 сентября 2018

Вам нужно использовать #create вместо #new:

def create
  @user_lead = UserLead.create(user_lead_params)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...