Nuw*_*ika 5 ruby ruby-on-rails carrierwave ruby-on-rails-4
我需要将图像上传到我的电影收藏应用程序我使用carrierwave来执行此操作(按照railscasts步骤)
步骤1我将gem'carrierwave','〜> 0.9'添加到我的Gemfile然后运行bundle步骤2 rails g uploader image然后rails g scaffold filmes name moviestype rake db step 3 rails g migration add_image_to_filmes image:string然后rake db
其他步骤与railscast相同
在我的电影模型中
attr_accessible :name, :moviestype, :image
mount_uploader :image, ImageUploader
Run Code Online (Sandbox Code Playgroud)
在我的_form.html.erb中
<%= form_for @filme, :html => {:multipart => true} do |f| %>
<% if @filme.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@filme.errors.count, "error") %> prohibited this filme from being saved:</h2>
<ul>
<% @filme.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :moviestype %><br>
<%= f.text_field :moviestype %>
</div>
<div class="field">
<br>
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在show.html.erb中
<p id="notice"><%= notice %></p>
<p>
<strong>Name:</strong>
<%= @filme.name %>
</p>
<p>
<strong>Moviestype:</strong>
<%= @filme.moviestype %>
</p>
<%= image_tag @filme.image_url(:thumb) if @filme.image? %>
<%= link_to 'Edit', edit_filme_path(@filme) %> |
<%= link_to 'Back', filmes_path %>
Run Code Online (Sandbox Code Playgroud)
问题是它没有上传任何图像,但电影名称和其他字段正在插入db.how我能解决这个问题吗?需要快速帮助.
根据错误日志,您不允许image将其保存到数据库中。在您的 中FilmesController,您需要:image允许
def filme_params
params.require(:filme).permit(:name, :moviestype, :image) ## Add :image attribute
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3773 次 |
| 最近记录: |