Ruby无法找到没有ID的模型

时间:2014-06-16 15:40:30

标签: ruby-on-rails ruby

我收到错误:Couldn't find Doctor without an ID信息:app/controllers/doctors_controller.rb:37:in show51'`这是代码,控制器中show51的第一行是第37行: 控制器/ doctors_controller:

# GET /doctors/1
  # GET /doctors/1.json
  def show51
      @doctor = Doctor.find(params[:id])
      session[:current_doctor_id2] = @doctor.id

      respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @doctor }
    end
  end

医生/视图/ show51:

  <div id="container">
  <center>
    <p>
      <strong>Name:</strong>
      <%= Doctor.find(session[:current_doctor_id2]).name %>
    </p>
  </center>
  </div>

请帮我解决这个问题:)

还有医生/ index51.html.erb:

  <!-- ####################################################################################################### -->
  <div id="container">
  <center>
    <h1>Lekarze przyjmujący:</h1>
<p>
Lista lekarzy przyjmujących w przychodni w porządku alfabetycznym   
</br>
Proszę o wybranie lekarza do którego wizyta ma zostać utworzona:"
</p>
<table border="1">
  <thead>
    <tr>
      <th>Imie lekarza</th>
      <th>Nazwisko lekarza</th>
      <th>Specjalizacja</th>
      <th colspan="3"></th>
    </tr>
  </thead>

  <tbody>
    <% @doctors.each do |doctor| %>
      <tr>
        <td><%= doctor.firstname %></td>
        <td><%= doctor.lastname %></td>
        <td><%= doctor.specialize %></td>
        <td><%= link_to 'Szukaj terminu', show51_doctors_path %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br>

    <%= link_to 'Strona główna', welcome_index_path %>

  </center>
  </div>

2 个答案:

答案 0 :(得分:0)

更改doctors/index51.html.erb: -

<td><%= link_to 'Szukaj terminu', show51_doctor_path(doctor) %></td>

将路线更改为: -

resources :doctors do
 collection do 
  get 'index 51'
 end
 member do
  get 'show51' 
 end 
end

答案 1 :(得分:0)

创建路线: 得到&#39;医生/ show51 /:id&#39;,来:&#39;医生#show51&#39;,as:show51_doctors_path

在控制器中:

 def show51
      @doctor = Doctor.find(params[:id])
      session[:current_doctor_id2] = @doctor.id

      respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @doctor }
    end
  end

在节目中:

 <div id="container">
  <center>
    <p>
      <strong>Name:</strong>
      <%= @doctor.name %> # You already have doctor assigned.
    </p>
  </center>
  </div>

在索引中:

<td><%= link_to 'Szukaj terminu', show51_doctors_path(doctor) %></td>