2011-11-17 49 views
0

我创建了学习其中有3款小Rails应用程序:轨创建自定义操作

class Resource < ActiveRecord::Base 
    belongs_to :task 
    belongs_to :user 
end 

class User < ActiveRecord::Base  
    has_many :resources 
    has_many :tasks, :through=>:recources 
end 


class Task < ActiveRecord::Base 
    has_many :resources, :dependent => :destroy 
    has_many :comments, :dependent => :destroy 
    has_many :users, :through=>:resources 

    accepts_nested_attributes_for :resources,:comments 

end 

一切正常 - 上市,创造等,但我想打哪个用户上传文本的示意图包含任务的文件(如何读取文本文件并不重要),因此我读取文件并获取任务。我创建了名称上传控制器:

class UploadController < ApplicationController 
    def index 
    end 

    def upload 
    flash[:notice]="Upload completed" 
    end 

end 

和索引视图这样的:

<% if flash[:notice] %> 
    <p><%= flash[:notice] %></p> 
<% end %> 

<div class="upload"> 
    <p>Select a project file</p> 
    <%= form_tag :controller=>:upload,:action => :upload,:method => :put do %> 

    <%= file_field 'Project File',:file %> 
    <%= submit_tag "Upload" %> 

    <% end %> 
</div> 

当我按下上传按钮它给了我“缺少模板上传/ uploa ......”

我该如何做到这一点,给我建议plz。

感谢

回答

0

如果您没有专门告诉它如何处理renderredirect_to,那么每个操作都会尝试渲染一个与自身名称相同的模板。你可以做的是:

 render :nothing => true 

这应该做你想做的。

同时,文档是体面的关于你可以用render

+0

嗨维森特做什么,感谢的答复,这是非常有益的。 – lote

1

缺少模板上传/ uploa ......”

Rails正在寻找一个观点:应用程序/视图/上传/ upload.html.erb

PS你。需要在您的form_for中添加:multipart => true以上传文件;)