Esta es mi primera aplicación ror. Tengo una página principal: home.html.erb Tengo forma allí.

  <%= form_for(@lead ,:html => {:class => 'check_form'}) do |f| %>

      <%= f.text_field :phone, placeholder: 'phone' %>
    <%= f.submit "Check car status", class: "btn btn-large btn-primary" %>
  <% end %>

Trasfondo: un cliente (lo llamo Lead puede ingresar su número de teléfono y verificar el estado de su automóvil que está siendo reparado ahora).

En este momento, esta vista home.html.erb es servida por static_pages_controller

 class StaticPagesController < ApplicationController
  def home
   @lead = Lead.new()
  end

  def help
  end
  def about
  end
  def contact
  end
end

También tengo LeadsController

class LeadsController < ApplicationController
*some code*

  def create
    @lead = Lead.new(lead_params)
    if @lead.save
      #sign_in @lead
      flash[:success] = "Request successfully created!"
      redirect_to @lead
    else
      render 'new'
    end
  end

* some code
end

Qué quiero hacer cuando el usuario ingresa su número de teléfono para encontrar un cliente potencial en la base de datos con el mismo número de teléfono y mostrar el estado de reparación al usuario.

Así que volvamos a mi problema: Sé cómo encontrar clientes potenciales por teléfono como este Lead.find(params[:id]) ¿Pero dónde escribir este código? Necesito encontrar el plomo por teléfono y luego imprimirlo en la pantalla. ¿Cómo puedo hacer esto?

0
user2950593 25 ene. 2016 a las 21:27

2 respuestas

La mejor respuesta

Lo que quiero hacer cuando el usuario ingresa su número de teléfono para encontrar un cliente potencial en la base de datos con el mismo número de teléfono y mostrar el estado de reparación al usuario.

Actualmente, su formulario tiene un propósito incorrecto. Esto requiere un formulario con la solicitud GET. Lo haré declarando un route personalizado como a continuación

get :check_lead_car_status, to: 'static_pages#check_lead_car_status', as: 'check_lead_car_status'

Y en el static_pages#check_lead_car_status

def check_lead_car_status
  @lead = Lead.find_by(phone: params[:phone]
end

Y modifique el formulario existente como a continuación

<%= form_tag check_lead_car_status_path, :method => :get do %>
  <%= text_field_tag :phone, placeholder: 'phone' %>
  <%= submit_tag "Check car status", class: "btn btn-large btn-primary" %>
<% end %>

Y una página check_lead_car_status.html.erb con el siguiente código

The Status of the Car is: <%= @lead.status %>
1
Pavan 25 ene. 2016 a las 18:57

Está redirigiendo a @lead, lo que significa que debería ser la ruta de presentación en el controlador principal. lo que significa que debes poner esa lógica en un método llamado show en tu controlador principal

Luego, en su vista (views/leads/show.html.erb), puede acceder a esa variable


Editar:

Si todo lo que está intentando hacer es consultar con un parámetro diferente, entonces debería buscar en interfaz de consulta de registros activos. específicamente la sección 1.1.5

Lead.find_by(phone: params[:phone])

0
PhilVarg 25 ene. 2016 a las 19:03