添加id到url不会工作

时间:2013-08-12 21:55:22

标签: ruby-on-rails ruby-on-rails-3

我有两个少模型的视图。

索引视图:

<% @icd1.each do |f| %>
 <%= link_to "#{f.von}  #{f.bis} #{f.bezeichnung}", icd_show_path(f) %>
 </p>
<% end %>

一个节目视图:

<% @icd1.each do |f| %>
  <%= link_to "#{f.von}  #{f.bis} #{f.bezeichnung}", icd_show_path(f) %>
  </p>
  <% f.icd2.each do |s| %>
    <%= s.von %><%= s.bis %><%= s.bezeichnung %>
    </p>
  <% end %>
<% end %>

我的控制器:

class IcdController < ApplicationController
  def index
@icd1 = Icd1.all
  end
  def show
@icd1 = Icd1.find(params[:id])
  end
end

但不知何故,索引视图中的链接不起作用:

<%= link_to "#{f.von}  #{f.bis} #{f.bezeichnung}", icd_show_path(f) %>

当我尝试访问节目页面时,我收到错误:

Couldn't find Icd1 without an ID

,网址只显示

http://localhost:3000/icd/show

没有身份证明!

我的路线:

get "icd/index"
get "icd/show"

1 个答案:

答案 0 :(得分:2)

第一:非常令人困惑的命名:控制器icd,型号icd1 ..


<强>第二

get "icd/show/:id", to: "icd#show", as: "icd_show"

get "icd/:id/show", to: "icd#show", as: "icd_show"

取决于您想要获得的网址。这很令人困惑。

但我认为这是您在网址中所需要的;

<%= link_to "#{f.von}  #{f.bis} #{f.bezeichnung}", icd_show_path(f) %>

以及路线:

get "icd/:id", to: "icd#show", as: "icd_show"

此后,下一个网址将可用:

../icd/1将从show控制器

调用操作icd