所以,我仍在努力掌握 ROR 的窍门。我的参与很少。致力于修复和扩展以前创建的应用程序。因此,我的知识存在一些空白,我相信这也会阻止我对信息进行必要的词汇和技术识别来搜索 google/stack/etc 以获得适当的答案。所以请容忍我在这里。
我的问题很简单。我目前正在遍历文件列表,并使用下载所述文件的链接填充无序列表(准确地说是.log 文件)。一切都正确显示,但链接本身不正确。所以问题是,如果我点击 log1.log 链接,它会带我到http://blahblah.blah/lot/log/folder/log1.log
哪个向我显示Rails: File rout not correct (No route matches [GET] "/lot/log/folder/log1.log")
错误。所以我想,“让我们确保正确的链接将我带到我需要去的地方”,我将浏览器中的 url 更改为http://blahblah.blah/log/folder/log1.log。果然这也不起作用……我一定不明白 Rails 如何处理目录结构。
所以我没有找到合适的路线......这一定很简单,我晚上失眠了,我的家庭生活正在分崩离析(真的只有几个小时)。我怎样才能解决这个问题?
这是供参考的代码:
<h1>User Log</h1>
<div class="modal">
<!-- _results.html.erb loads here -->
</div>
<div class="form-container">
<div class="wrapper">
<% Dir["log/*/*.log"].each do |file| %>
<li><%= link_to file, file %></li>
<% end %>
</div>
</div>
这些文件位于文件夹中按月份指定的log
文件夹中。
例如 app/log/sept2013/log1.log。
总而言之-我做错了什么,我对路线不了解什么?我有哪些解决方案以及访问和显示目录和文件的常见做法是什么?
神速
编辑 - 根据请求,routes.rb
App::Application.routes.draw do
resources :alerts
# Users
devise_for :users, :path_prefix => 'auth', :controllers => { :passwords => 'users/passwords', :sessions => 'users/sessions' }
devise_scope :user do
get '/login' => 'users/sessions#new'
end
match '/users/me' => 'users#me'
resources :users
# Facilities
resources :facilities
# Lab Methods
resources :lab_methods
# Products
resources :products
# Qualities / Quality Control
match 'quality-assurance/modal' => 'quality#modal'
resources :qualities, :path => 'quality-assurance', :controller => 'quality'
# Quality History
resources :quality_histories, :path => 'quality-history', :controller => 'quality_histories'
# Lots
match 'lot/certificate_review' => 'lot#certificate_review'
match 'lot/:action', :controller => 'lot'
match 'lot/:action/:id', :controller => 'lot'
# Other
match 'dashboard' => 'main#dashboard'
match 'reporting' => 'main#reporting'
match 'settings' => 'main#settings'
match 'search' => 'main#search'
match 'search.xlsx' => 'main#search.xlsx'
match 'options' => 'main#options'
# Root
root :to => 'main#dashboard'
get "lot/user_log"
end