我想在我正在制作的问题中添加一张或多张照片。我已经通过使用宝石回形针实现了它。当我通过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中所做的那样。感谢