未定义的方法`page_leads' +控制器显示方法

时间:2015-03-19 19:53:00

标签: ruby-on-rails view controller link-to

我正在尝试创建潜在客户列表并创建链接以显示每个详细信息。所以我创建了一个这样的控制器:

class LeadsController < ApplicationController
  def index
    @leads = Leads.all
  end

  def show
    @leads = Leads.find(params[:id])
  end

  def delete
  end

  private

    def lead_params
      params.require(:lead).permit(:name,:familyname,:email,:mmobile)
    end

end

和下面的路线:

Rails.application.routes.draw do
  root 'pages#home'
  get 'pages/home' => 'pages#home'
  get 'leads/index'

  resource :leads
  get 'leads/:id/show'=> 'leads#show',:as => :leads_show end

但有一个问题和一个问题: 问题是当我写{ Leads.find(params[:id]) }时,编辑器不识别params [:id]。为什么呢?

当我想看到http://127.0.0.1:3000/leads/index时 我看到这样的错误: #&lt;#:0x36da5f8&gt;的未定义方法`lead_path'; 提取的来源(第8行):

     <td><%= lead.familyname %></td>
   6  <td><%= lead.mobile %></td>
    7 <td><%= lead.email %></td>
    8 <td><%= link_to 'show' ,  lead %></td>
   </tr>
<% end %>
<p>Find me in app/views/leads/index.html.erb</p> 

1 个答案:

答案 0 :(得分:1)

应该是

@lead = Lead.all
@lead = Lead.find(params[:id])

模型名称应始终为单数,并且ccontroller名称将为复数

它应该是resources :leads,它将创建所有七个动作,如show,update,create..etc

而且您不必致电http://127.0.0.1:3000/leads/indexhttp://127.0.0.1:3000/leads,这将调用索引页

您可以发布params,以便我们了解您未获得params[:id]的原因