Question

Je suis en train de suivre une série de vidéos, où l'auteur est de créer un CMS simple d'utilisation à l'aide de RoR 4, mais j'ai actuellement RoR 3.x installé.J'ai suivi tout le code d'un "T", mais lorsque j'essaie de créer un sujet simple dans le CMS simple d'utilisation, j'obtiens une erreur.J'ai donc vérifié le journal ou de la production.journal

Et j'obtiens l'erreur suivante, TypeError (no implicit conversion of Symbol into String):

Le contrôleur de code ressemble à celui-ci,

def create
    # Instantiate a new object using form parameters

    # the below line should work with rails v3.x
    # @subject = Subject.new(params[:subject])

    @subject = Subject.new(subject_params)

    # Save the object
    if @subject.save
      # add flash hash
      flash[:notice] = "Subject created successfully."
      # if save succeeds, redirect to the index action
      redirect_to(:action => 'index')
    else
      # if save fails, redisplay the form so user can fix problems
      render('new')
    end
  end

Et la méthode privée j'ai créé pour l'objet de nouvelles params ressemble à la suivante

 private

    def subject_params
      # same as using "params[:subject]", except that it:
      # - raises an error if :subject is not present
      # - allows listed attributes to be mass-assigned
      params.require(:subject).permit(:name, :position, :visible)
    end
Était-ce utile?

La solution

L'auteur vous dit que vous avez besoin de changer @subject = Subject.new(subject_params) pour @subject = Subject.new(params[:subject]).

params.require(:subject).permit(:name, :position, :visible) est un les Rails 4 fonction appelée Forte Paramètres.Si vous êtes nouveau sur les Rails, je vous suggère d'utiliser la version de l'auteur utilise pour soulager les futures version de questions de ce genre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top