0
我得到了: 安裝了Rails 4,carrierwave和simple_form gems。Rails4。上傳應該屬於模型的多個文件
圖片
class Image < ActiveRecord::Base
mount_uploader :image, ImageUploader
belongs_to :portfolio, foreign_key: :portfolio_id
THUMB_WIDTH = 220
end
組合:
class Portfolio < ActiveRecord::Base
has_many :images
end
組合控制器:
class PortfolioController < ApplicationController
def new # render a form to add a portfolio entry
@portfolio = Portfolio.new
end
def create
puts ">>>"
puts portfolio_params.inspect
puts "<<<"
entry = Portfolio.new(portfolio_params)
entry.save
images = Image.create(portfolio_params[:images])
images.portfolio = entry
images.save
end
private
def portfolio_params
params.require(:portfolio).permit(:title, :description, images: [:image])
end
end
組合創建形式(簡體):
<%= simple_form_for @portfolio, method: :post, html: { multipart: true } do |f| %>
<%= f.input :title %>
<%= f.input :description %>
<!-- nested images -->
<%= f.simple_fields_for :images do |i| %>
<%= i.input :image, as: :file %>
<%= i.input :image, as: :file %> <!-- I want 2 files -->
<% end %>
<% end %>
問題是:圖像應該作爲數組提交,第二個問題是使用強參數。我一直在爲此奮鬥了很長一段時間,嘗試了幾種方法來允許參數不會得到任何異常並讓表單工作。
我在做什麼錯在這裏?
P.S.我在Ruby和Ruby on Rails的新手,請不要怪難;)
我得到'未定義的方法'accept_nested_attributes_for」的管理員:: PortfolioController:Class' – Nemoden
哎呀,錯字,應該是‘accepts_nested_attributes_for’ – mountriv99
順便說一句,U應該把該行的模型,不是你的控制器 – mountriv99