我尝试根据Trial控制器中的trial_id创建动态页面。我有它显示正确的URL,但得到一个无路由匹配[GET]错误。我使用的是rails 4.2.0,这在之前的3.2版本上运行过,但我认为我错过了一些东西。
查看
<% @regions.each do |region, list| %>
<%= region %>
<% list.sort{ |a,b| a.site.site_name <=> b.site.site_name }.each do |list| %>
<% paths = trials_show_path(trial_id: list.trial_id)
path = paths.gsub("?trial_id=", "/")
%>
<%= link_to list.site.site_name, path %>
<% end %>
<% end %>
显示控制器
@results = Trial.trial_id(params[:trial_id])
试用模式
scope :trial_id, -> (trial_id) { where(trial_id: trial_id) }
路线
get 'trials', :to => 'trials#index'
get 'trials/show'
答案 0 :(得分:1)
在routes.rb
文件中使用此自定义路线。
get 'trials/index/:trail_id' => 'trials#index',:as=>'trails'
get 'trials/show'
然后在你的视图中使用'trails_path'。