我创建了一个用于学习的小型rails应用程序,它有3个模型:
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
一切都很好 - 列出,创建等。但我想查看哪个用户上传包含任务的文本文件(我不能阅读文本文件的重要性)所以我读取文件并获取任务。我创建了一个名为upload的控制器:
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>
当我按上传按钮时,它会给我“缺少模板上传/上传....”
我怎样才能完成这个动作,给我一些建议。
由于
答案 0 :(得分:1)
缺少模板上传/上传....“
Rails正在寻找一个视图:app / views / upload / upload.html.erb
PS。您需要添加:multipart =&gt;在您的form_for中为true以上传文件;)
答案 1 :(得分:0)
如果您没有明确说明render
或redirect_to
的内容,则每个操作都会尝试呈现与自身名称相同的模板。所以你能做的就是:
render :nothing => true
那应该做你想要的。
此外,关于使用render
可以做些什么,文档也很合适