2013-07-01 12 views
5

Ich habe gerade Ruby on Rails mit dem Getting Started with Rails Tutorial ausprobiert. Ich folgte allen Schritten, aber ich bekomme den Fehler TypeError in PostsController # create.TypeError in Erste Schritte mit Rails Tutorial

Dies passiert, wenn ich in Schritt 5.6 Daten in der Steuerung speichern.

Mein PostsController.rb sieht wie folgt aus:

class PostsController < ApplicationController 

    def new 
    end 

    def create 
    @post = Post.new(post_params) 

    @post.save 
    redirect_to @post 
    end 

    private 
    def post_params 
    params.require(:post).permit(:title, :text) 
    end 
end 

und ich bin auf localhost: 3000/posts/neu. Ich bin ein POST-Anforderung und es schlägt mit dem folgenden:

kann nicht konvertieren Symbol in String

app/controllers/posts_controller.rb:15:in `post_params' 
app/controllers/posts_controller.rb:7:in `create' 

Dieser Fehler trat auf, während die folgenden Dateien geladen: Post

Sie können alle meine Code auf my GitHub repo finden.

Bitte :(

+0

Willkommen bei Stackoverflow! Für eine schnellere Antwort ist es am besten, alle relevanten Abschnitte des Codes in Ihrem Post zu veröffentlichen. – claptimes

+0

Awh, es gibt ein separates Tutorial speziell für Rails 3.2.xx. Die folgenden Schritte lösen es. http://guides.rubyonrails.org/v3.2.13/getting_started.html –

Antwort

7

Sie helfen werden Schienen Version 3.2.xx, auf Schienen Version 3.2.xx nicht strong_parameters gem

Beachten Sie, dass def post_params privaten umfassen die Verwendung ist. Dieser neue Ansatz verhindert, dass ein Angreifer aus den Attributen des Modells Einstellung durch den Hash- auf das Modell übergeben zu manipulieren. weitere Informationen finden Sie in diesem Blog-Eintrag über Strong Parameters.


  1. hinzufügen gem "strong_parameters" zu Ihrem Gemfile, dann laufen bundle install

  2. ActiveModel::ForbiddenAttributesProtection auf Ihrem Modell enthalten oder config/initializers/strong_parameters.rb erstellen und setzen diese:

    ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection))

  3. config.active_record.whitelist_attributes = false in config/application.rb

https://github.com/rails/strong_parameters