ruby-on-rails - #<ActionDispatch::Http::UploadedFile:0x007fae8c0bfaa8> 的未定义方法 `[]'

标签 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-3.1

我在 file_field 列中嵌套了表单,当我尝试创建它时会抛出
UserController 中的 NoMethodError#update
#的未定义方法`[]'

{
 "utf8"=>"✓",
 "authenticity_token"=>"HFWawKp4RH7+AFV0yQ1cXpzxHDfubKTKkiDiS6QKnJk=",
 "user"=> { 
  "name"=>"Test",
  "image_attributes"=> { 
    "picture"=>#<ActionDispatch::Http::UploadedFile:0x3f4e318
    @original_filename="Beautiful Sky_thumb.jpg",
    @content_type="image/jpeg",
    @headers="Content-Disposition: form-data; name=\"user[pics_attributes][pic]\"; filename=\"Beautiful Sky_thumb.jpg\"\r\nContent-Type: image/jpeg\r\n",
    @tempfile=#<File:C:/Users/Alex/AppData/Local/Temp/RackMultipart20120824-4784-5rmxid>>
  }
 },
"commit"=>"Save User"
}

我的模特
class User < ActiveRecord::Base
  attr_accessbile: :name, image_attributes
  has_many :images
  accepts_nested_attributes_for: images
end

class Image < ActiveRecord::Base
  belongs_to :verve_app
  mount_uploader picture, PictureUploader
end

我的 Controller
def new
  @user = User.new
  @user.images.build
end

def create
  @user = User.new(params[:user])
  @user.save!
end

我的看法
<%= form_for @user do |f| %>
  <%= f.hidden_field :name, {value: 'Alex'} %>
  <%= f.fields_for :image_attributes do |image| %>
    <%= image.file_field :picture %>
  <% end %>
  <%= user.submit %>
<% end %>

最佳答案

尝试在模型类 :image 上调用 fields_for 而不是在 :image_attributes 上。

替换您的 <%= f.fields_for :image_attributes do |image| %> with <%= f.fields_for :image do |i| %>。然后将 image.file_field 更改为 i.file_field

看看这是否有帮助,或者至少会产生新的错误供我们工作。

关于ruby-on-rails - #<ActionDispatch::Http::UploadedFile:0x007fae8c0bfaa8> 的未定义方法 `[]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21156232/

相关文章:

mysql - rake 中止 : db:schema:dump

mysql - Rake db :migrate aborted! Ghost开发数据库使用MySQL2吗?

ruby-on-rails - Rails time_select 中的有效范围

ruby-on-rails - 两次之间的 Rails 查询

ruby-on-rails-3 - 当您在 Rails 处理请求时更改全局变量或类变量时,全局影响有多大?

ruby - 第一个 RoR 安装。找不到两个 "lib"文件。正常吗?

mysql - 将 Ruby 版本与 MySql 客户端混合使用时出现问题

ruby-on-rails - 模型中某些 Action 的验证

java - 没有本地数据库的 TDD?

ruby-on-rails - 学习 RoR,有人可以从 H**ll 解释这个 boot.rb 吗?