- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我是 Rails 的 super 新手。已经学习了几个星期了。请原谅我的白痴。我无法获取我选择上传的文件。
我正在使用 Rails 4.0.0。
我正在开发我的第一个应用程序,我首先遵循博客应用程序的 Rails 指南。我接受了它并运行它并正在创建一些不同的东西(错误跟踪系统)只是试图学习绳索。
所以,我有我的表格:
<%= form_for @post do |f| %>
并且我已经在我的 file_field 中添加了。就选择文件而言, View 中的显示部分看起来和工作良好。
<%= f.label :attachment %>
<%= f.file_field :attachment %>
我已经从 rails 4 guides FYI 中提取了这个。所以我的 Controller 看起来像这样:
class PostsController < ApplicationController
def new
@post = Post.new
end
def create
@post = Post.new(params[:post].permit(:title, :text, :user, :screen))
if @post.save
redirect_to posts_path
else
render 'new'
end
end
def show
@post = Post.find(params[:id])
end
def index
@posts = Post.all
end
def edit
@post = Post.find(params[:id])
end
def update
@post = Post.find(params[:id])
if @post.update(params[:post].permit(:title, :text, :user, :screen))
redirect_to posts_path
else
render 'edit'
end
end
def destroy
@post = Post.find(params[:id])
@post.destroy
redirect_to posts_path
end
def upload
uploaded_io = params[:post][:attachment]
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'w') do |file|
file.write(uploaded_io.read)
end
end
private
def post_params
params.require(:post).permit(:title, :text, :user, :screen, :attachment)
end
end
这里的新作品正在上传。其他一切都可以很好地从数据库中写入/读取和显示。当显示 View 时,我输入文本,附加一个文件并点击提交。一切都写入数据库并显示在索引中,但我尝试附加的文件没有写入 ~/bugs/public/uploads/
在此先感谢您的帮助。
最佳答案
我认为问题可能在于 :attachment 属性不是“创建”或“更新”操作中允许的参数。
编辑:我上传简单文件的方式是使用 Paperclip gem - 这个 railscast解释得很好。它真的很容易使用。
还有 this answer这可能会回答这个问题。
此外,使用强参数的标准方法是在私有(private)方法中定义允许的参数并在 Controller 操作中调用该方法(这样您就不必自己重复)。这可能是错误的原因。
例子:
def create
@post = Post.new(post_params)
...
end
希望对您有所帮助。
关于ruby-on-rails - Rails 4 添加 file_field 以将附件上传到现有表单和 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18407013/
是否可以为 file_field 助手生成的按钮提供您自己的标题? 最佳答案 您可以针对您的情况检查此答案: How to change the button text of ? 答案将向您展示如何在
如何在 ruby on rails 中自定义文件字段“浏览”按钮。 cutomise 从某种意义上说,我想更改按钮的颜色和样式。这在 ROR 中可能吗?如果是这样,任何人都可以帮助我.... 最佳
使用回形针和 ruby-mp3info 上传和读取文件信息,我有一个创建播放列表及其子轨道的表单: prohibited this playlist from b
我目前有以下上传图片的方法,但我还想添加一个限制,以防止用户上传任何高度小于50px的文件。这可能吗? file_field "form", "image", accept: 'image/png,i
你看到file_field提供了一个窗口让用户选择某个文件并上传到服务器端。但是我想要的只是文件名。我怎么能只得到文件名,我不需要文件本身。有什么建议吗? 最佳答案 不确定你为什么需要这个,但你可以试
我有一个按钮,我想执行由 Rails 中的 file_field 生成的操作。这是我现在拥有的 erb 代码: > Upload from computer 我遵循了 thi
我正在使用带有 Carrier Wave 的 Rails 4 和 Ruby 2 以及 jQuery Mobile 1.3,并且用户有一个带有 Logo 的配置文件。我已经在控制台中测试了后端 Carr
在我的模型中,我使用回形针将头像附加到我的用户身上: has_attached_file :avatar, :styles => {square_tiny: '50x50#', square_
我想更改 file_field 的 css。而不是显示原始浏览按钮。我想使用简单的上传按钮来上传文件。 我如何更改 file_field 的 css 并在其上设置另一个图像?所以它看起来像一个按钮而不
我的 Controller : class ArticlesController 我的模型: class Article {:multipart => true
我有一个非常标准的 Rails 表单: Create a New Listing {:multipart => true} do |f| -%>
我正在尝试使用 PaperClip 并一直在关注他们 GitHub 页面上的快速入门。 我已经安装了 gem、模型和 Controller ,在 View 中我有: { :multipart =>
在包含带有选择文件输入的表单的网页上工作,如以下代码段所示: Import: Choose File ... 使用 Watir WebDriver,以下返
我的 file_field 标签只是将文件名而不是文件本身传递给 Controller 。 在我的用户模型中: mount_uploader :avatar, AvatarUploader val
我正在使用 Railscast 197 中找到的代码来使用 jQuery 创建嵌套表单。我面临的挑战是嵌套模型使用 file_field 元素,因此在查看 edit View 时我只看到空 file_
具有以下形式: = form_for company, html: { multipart: true } do |form| = form.label :logo, 'Upload Imag
我的系统: Windows 10 Pro 64-bit ruby 2.1.9p490 (2016-03-30 revision 54437) [x64-mingw32] FireFox 47.0.1
升级到 Rails 4.2 后,我将上传的文件保存到数据库 ( pg ) 的代码失败并显示错误消息:“字符串包含空字节”。 我创建了一个只有一个模型和一个二进制字段的新 Rails 4.2 应用程序。
我在 Rails 中遇到了文件上传问题。我找到了 file_field :file助手,可以与 form_for(@some_model) 一起使用.但是,我找不到这种情况的任何用法,因为这些标签用于
使用 nested_form_for 时并且有一个 file_field在fields_for我从回形针中收到以下错误: Paperclip::AdapterRegistry::NoHandlerEr
我是一名优秀的程序员,十分优秀!