![](/img/trans.png)
[英]SyntaxError in ArticlesController#create on Ruby on Rails
[英]Rails carrierwave multiple file upload Encoding::UndefinedConversionError in ArticlesController#create
我曾用過Rails gem carrierwave
測試多個上傳圖片
下面是我一步一步
rails new TestUploadImages
rails g Article title:string body:text
rails generate uploader Avatar
rails g migration add_avatar_to_users avatar:string rake db:migrate
配置Article model uploader
class Article < ApplicationRecord
mount_uploader :avatar, AvatarUploader
end
config _form.html.erb
用於創建帶有圖像的文章
<%= form_for @article, html: {multipart: true} do |f| %>
<p>
<%= f.label :title %>
<%= f.text_field :title %>
</p>
<p>
<%= f.file_field :avatars%>
</p>
<p>
<%= f.label :body %>
<%= f.text_area :body %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
article_controller
class ArticlesController < ApplicationController
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
@article.save
render "show"
end
def show
@article = Article.find(params[:id])
end
private
def article_params
params.require(:article).permit(:title, :body, :avatar)
end
end
在這里可以用文章創建一張圖片
下面是嘗試創建多個圖像article
表avatar
與列avatars
更改_form.html.erb
class Article < ApplicationRecord
mount_uploader :avatar, AvatarUploader
serialize :avatars, JSON
end
因為我使用的測試數據庫是sqlite3,所以來自cariierwave的引用
def article_params
params.require(:article).permit(:title, :body, {avatars: []})
end
更改articles_controller的強參數
def article_params params.require(:article).permit(:title, :body, {avatars: []}) end
現在應該創建多個圖像
當我嘗試創建時發現此錯誤
在模型Article
安裝avatars
不是avatar
並將您的列avatar
更改為:
def change
remove_column :articles, :avatar
add_column :articles, :avatars, :string, array: true, default: []
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.