2010-05-20 159 views
0

匹配错误我有一个没有路由匹配后错误渲染:部分没有路由的文件

<% unless @user.uploads.empty? %> 
<% @user.uploads.each do |u| %> 
<tr> 
<td><%= link_to u.filename, u.filename %></td> 

它给了我正确的文件名一样http://localhost:3000/DSC00082.JPG。 我还没有添加任何东西到我的路线。 对于新的rails,请原谅我(希望)简单的问题。

添加一个问题:对应的数据库条目是正确的只是文件名?

上面的代码变更为

<% unless @user.uploads.empty? %> 
<% @user.uploads.each do |uploads| %> 
<tr> 
<td><%= link_to (uploads.filename, uploads) %></td> 

和添加map.rescources后:上传, “否动作响应表明”被生成的消息。在地址栏中,我的浏览器显示关于数据集的ID。

问候, devyn

+0

什么是你的渲染:部分代码? – Salil 2010-05-20 09:16:51

+0

渲染部分代码在索引中;上面的代码来自_datafiles <%= render:partial =>'upload/datafiles'%> – 2010-05-20 09:18:00

回答

0

如果uActiveRecord::Base一个子类,你的link_to必须是这样的:

<%= link_to u.filename, u %> 

同样的Rails会检测u与控制器的对象,而且它会将其转换为REST有效URL(并将您重定向到show动作)。

如果这不是你的情况,请告诉我。

[编辑]

如果你知道的Rails是如何工作的,跳过这一段:

随着map.resources:上传你告诉你有一个叫做上传资源具有UploadController轨道,并产生路线5行动:new/create, index, show, edit/updatedestroy。每个操作都需要控制器中的一个方法(请参阅Rails Guides中的ClientsController示例)。

当没有UploadsController#show时,“没有对节目作出反应”引发。此方法的一个示例:

def show 
    @upload = Upload.find(params[:id]) 
    respond_to do |format| 
    format.html 
    format.xml {render :xml => @upload} 
    end 
end 

此方法呈现文件views/uploads/show(确保创建它)。

+0

不幸的是,这会抛出一个“undefined method'upload_path'”消息;甚至在将“u”全部更改为“上传”之后。 – 2010-05-20 11:51:52

+0

你的config/routes.rb有“map.resources:uploads”这行(没有引号)? – pablorc 2010-05-20 12:17:08

+0

请参阅上面编辑过的帖子。它必须rescources:我的控制器的上传被命名为 – 2010-05-20 12:24:39