持续获取“未选择文件”尝试使用载波上传图像时? [英] Keep getting "no file selected" when attempting to upload an image using carrier wave?

查看:88
本文介绍了持续获取“未选择文件”尝试使用载波上传图像时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过遵循以下railscast来实现使用CarrierWave上传图像: http://railscasts.com/episodes/253-carrierwave-file-uploads?view=comments ,但是每当我提交图像时,当我清楚地选择一个文件时,我的错误消息只会显示未选择文件。

I am trying to implement uploading images with CarrierWave by following this railscast: http://railscasts.com/episodes/253-carrierwave-file-uploads?view=comments , but whenever I submit the image it my error message just says no file selected, when I am clearly selecting a file.

我检查了很多遍代码,但无法弄清楚。

I've checked over my code many, many times and I can't figure it out.

这是我的产品/new.html.erb

Here is my products/new.html.erb

<h1> new product </h1>
<% @product = Product.new %>
<% form_for(@product) html => { :multipart => true } do |f| %>
<% if @product.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@product.errors.count, "error") %>
    prohibited this post from being saved:</h2>
 <% end %>
<% end %>
    <ul>
  <% @product.errors.full_messages.each do |msg| %>
    <li><%= msg %></li>
  <% end %>
  </ul>
  </div>
  <% end %>

   <div class="field">
   <%= f.label :title %><br />
   <%= f.text_field :title %>
   </div>

  <div class="field">
   <%= f.label :description %><br />
   <%= f.text_field :description %>
  </div>

 <div class="field">
  <%= f.file_field :image %>

  <div class="field">
    <%= f.label :remote_image_url, "or image url" %><br />
    <%= f.text_field :remote_image_url %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
 <% end %>

这是我的产品模型中的内容:

Here is what is in my product model:

mount_uploader :image, ImageUploader

我的新创建,并显示来自产品控制器的操作:

My new, create, and show actions from products controller:

def new
@product = Product.new(params[:id])
end

def create
@product = Product.new(product_params)

if @product.save
    redirect_to @product
else
    render :new
end
end

def show
@product = Product.find(params[:id])
end

在产品控制器中定义参数:

defining params in products controller:

private
def product_params
params.require(:product).permit(:title, :description, :image, :remote_image_url)
end 
end

这是我能想到的所有相关信息。谢谢。

This is all the relevant info I can think of. Thanks for the help.

编辑:设置了多部分后,我会收到此错误

After setting multipart I get this error

语法错误,意外的tIDENTIFIER,期望keyword_end form_for(@product)html => {:multipart => true}做| f | ^ app / views / products / new.html.erb:3:语法错误,意外的keyword_do_block,期望keyword_end

syntax error, unexpected tIDENTIFIER, expecting keyword_end form_for(@product) html => { :multipart => true } do |f| ^ app/views/products/new.html.erb:3: syntax error, unexpected keyword_do_block, expecting keyword_end

我在和中添加了<%end%>标签我还是一样。我在上面发布了整个视图文件的代码。

I have added <% end %> tags in and I still get the same. I posted the whole view files code above.

推荐答案

尝试使用以下形式,您的表单看起来很乱,很多结束语句

try with following form, your form looks messy, lot of end statements

  def new
     @product = Product.new
  end


products / new.html.erb


<h1> new product </h1>
<%= form_for @product do |f| %>
    <% if @product.errors.any? %>
      <div id="error_explanation">
        <h2><%= pluralize(@product.errors.count, "error") %>
                prohibited this post from being saved:</h2>
        <ul>
          <% @product.errors.full_messages.each do |msg| %>
             <li><%= msg %></li>
          <% end %>
        </ul>
      </div>
    <% end %>

   <div class="field">
      <%= f.label :title %><br />
      <%= f.text_field :title %>
   </div>

   <div class="field">
      <%= f.label :description %><br />
      <%= f.text_field :description %>
    </div>

   <div class="field">
       <%= f.file_field :image %>
   </div>

   <div class="field">
       <%= f.label :remote_image_url, "or image url" %><br />
       <%= f.text_field :remote_image_url %>
   </div>

   <div class="actions">
       <%= f.submit %>
   </div>
 <% end %>

这篇关于持续获取“未选择文件”尝试使用载波上传图像时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆