-1

我有 3 张表:一张包含疾病,一张包含症状,一张是多对多的 disease_symptom 表。我想从我的疾病页面添加一个超链接,它将引导用户到一个包含这种特定疾病症状的新页面(按字母顺序排序)。

我是 ROR 的新手,所以我真的不知道在项目树中将这个新页面放在哪里以及如何向它添加路由。

我添加了一个名为“Pages”的目录,在该目录下放置了我的新文件“symptomsForIllness.html.erb”。另外我在疾病/显示html中添加了一个超链接:

<%= link_to 'Symptoms',symptomsForIllness_path(@illness) %>

我还尝试将以下路由添加到 routes.rb:

match '/symptomsForIllness_path' => 'Pages#symptomsForIllness'

我收到以下错误:

ActionView::Template::Error (未定义的方法symptomsForIllness_path' for #<#<Class:0x3f1fbc0>:0x32d0060>): 10: <%= link_to 'Back', illnesses_path %> 11: <br /> 12: <%= link_to 'symptoms',symptomsForIllness_path(@illness) %> app/views/illnesses/show.html.erb:13:in_app_views_illnesses_show_html_erb___154118681_26683248' app/controllers/illnesses_controller.rb:19:in `show'

您能否告诉我在目录树中放置此类文件的位置(代表多对多关系的文件)以及如何避免此错误?

谢谢,李

4

1 回答 1

1
#in routes.rb
resources :symptoms :only => [:index] do
  get 'illnesses', :on => :member
end

resources :illnesses :only => [:index] do
  get 'symptoms', :on => :member
end   

在视图中 path_helpers

illnesses_symptom_path(@symptom) #symptoms controller, illnesses action

symptoms_illness_path(@symptom) #illnesses controller, symptoms action
于 2012-05-26T17:26:13.007 回答