所以,我还在努力掌握罗尔的诀窍。我的参与程度很低。致力于修复和扩展以前创建的应用程序。因此,我在知识上有一些空白,我认为这也妨碍了我从必要的词汇和技术上识别信息,以搜索google/堆栈/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。当然,这不起作用,either...there肯定是我不理解Rails如何与目录结构一起工作的东西。
因此,我没有得到适当的route...this必须是简单的,我正在失去睡眠,我的家庭生活正在崩溃(实际上只有几个小时)。,我怎样才能解决这个问题?
以下是供参考的代码:
<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/ so 2013/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发布于 2013-09-17 23:02:55
您只能直接访问“公用”文件夹中的文件。不过,以下是您可以做的:
控制器操作可能如下所示:
class LogsController < ApplicationController
def log
send_file "log/#{params[:log_file]}"
end
end路线:
get "/log/:log_file", :to => 'logs#log', :constraints => {:log_file => /.*/}注意约束选项,它允许log_file参数包含斜杠。
https://stackoverflow.com/questions/18860072
复制相似问题