这是我的第一个应用程序。
我有主页:home.html.erb
我在那里组建。
<%= 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 %>
背景故事:客户(我称他为Lead可以输入他的电话号码并检查他现在正在维修的汽车状态。)
现在,此视图home.html.erb
由static_pages_controller
class StaticPagesController < ApplicationController
def home
@lead = Lead.new()
end
def help
end
def about
end
def contact
end
end
我还有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
当用户输入他的电话号码以查找具有相同电话号码的数据库中的潜在客户并向用户显示维修状态时,我想要做什么。
回到我的问题:
我知道如何通过电话找到导致Lead.find(params[:id])
但是在哪里写这段代码?我需要通过电话找到铅,然后将其打印到屏幕上。我怎么能这样做?
答案 0 :(得分:1)
当用户输入他的电话号码以查找潜在客户时,我想要做什么 具有相同电话号码的数据库并向用户显示修复状态。
目前,您的表单有错误的用途。这需要具有route
请求的表单。我将通过声明下面的自定义get :check_lead_car_status, to: 'static_pages#check_lead_car_status', as: 'check_lead_car_status'
static_pages#check_lead_car_status
在def check_lead_car_status
@lead = Lead.find_by(phone: params[:phone]
end
<%= 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 %>
并修改现有表格,如下所示
check_lead_car_status.html.erb
页面The Status of the Car is: <%= @lead.status %>
,代码如下
{{1}}
答案 1 :(得分:0)
您重定向到@lead
,这意味着应该是主控制器中的显示路径。这意味着您需要将该逻辑放在Lead控制器中名为show
的方法中
然后在您的视图(views/leads/show.html.erb
)中,您可以访问该变量
编辑:
如果您尝试做的只是通过其他参数进行查询,那么您应该查看active record query interface。特别是第1.1.5节
Lead.find_by(phone: params[:phone])