嵌套属性/几个嵌套模型/ Paperclip RubyOnRails

时间:2018-01-23 01:32:35

标签: ruby-on-rails nested paperclip

我想在我正在制作的问题中添加一张或多张照片。我已经通过使用宝石回形针实现了它。当我通过URL“/ questions / new”访问它时,它可以工作但是我想调整它以使其与我的“最高模型”(称为“Formulaire”)一起工作并创建一个带有问题的表单,并且每个问题都可以有一个或多个照片。

我创建了我的模型照片:

 class Photo < ActiveRecord::Base
  belongs_to :question
  has_attached_file :image, :styles => { :medium => "300x300>", :thumb =>    "100x100>" }
  validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/

 end

我的Question.rb模型:

 class Question < ActiveRecord::Base
  belongs_to :formulaire
 has_many :photos
 validates :nom, presence: true
end

我的Questions_controller

 class QuestionsController < ApplicationController
 def show 
  @answers = @question.answers
  @photos = @question.photos
  end

  def edit 
   @question = Question.find params[:id]
   @photos = @question.photos
  end

 def create
  @question = current_user.questions.new(question_params) 
  if @question.save   
  if params[:images]
     params[:images].each do |i|
       @question.photos.create(image: i)
    end
   end
  @photos = @question.photos
  redirect_to edit_question_path(@question), notice: "Votre question a bien été créee"
  else    
  render :new
  end
 end

 def update
  set_question
 if @question.update(question_params)
 if params[:images]
    params[:images].each do |i|
      @question.photos.create(image: i)
  end
 end
 @photos = @question.photos
 redirect_to edit_question_path(@question), notice: "Modification enregistrée"
 else
  render :edit
  end

以下是我的Formulaire_controller的编辑,创建和更新方法:

 def edit
  @formulaire = Formulaire.find(params[:id])
 end

 def create
   @formulaire = current_user.formulaires.new(formulaire_params)
   if @formulaire.save    # Si le form est sauvegardée dans la BDDon notifie le user
   redirect_to @formulaire, notice: "Votre formulaire a bien été crée"   
   else     
   render :new
  end
 end

 def update
  set_formulaire
  if @formulaire.update(formulaire_params)
  redirect_to @formulaire, notice: "Modification(s) enregistrée(s)"
  else
  render :edit
 end
end

我如何调整我的Formulaire_controller来创建照片问题,就像我在questions_controller中所做的那样。感谢

0 个答案:

没有答案