2013-07-02 24 views
8

Mam następujący kod w Ruby, wziąć bezpośrednio z Getting Started with Rails przewodnikanie można przekonwertować symbolu do String

def create 
    @post = Post.new(post_params) 

    @post.save 
    redirect_to @post 
end 

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

Kiedy uruchomić powyższą Create pojawia się następujący błąd.

nie można przekonwertować na symbol ciąg

+3

a co za pytanie ???? –

+3

Jaki jest błąd pełnego śledzenia wstecznego? Podaj więcej danych. –

Odpowiedz

31

Wydaje się, że próbujesz użyć silne paramaters. Otrzymujesz ten błąd nie można przekonwertować symbolu na ciąg, ponieważ nie skonfigurowałeś parametrów strong_term. Domyślnie nie można używać parametru wymagającego w params z symbolami.

Konfiguracja mocne parametry:

1.) Add gem 'strong_parameters' to your gemfile and bundle it. 
2.) Include Restrictions to you model as follows. 
     include ActiveModel::ForbiddenAttributesProtection to your model. 
3.) Disable white listing in application confiuration(config/application.rb) 
    config.active_record.whitelist_attributes = false 

zobaczyć documentation więcej szczegółów na temat konfiguracji.

Teraz Twój kod powinien zadziałać.

+5

powinno wystarczyć 1.) Dodaj "strong_parameters" gem do swojego gemfile i spakuj go. – d1jhoni1b

+0

@ d1jhoni1b jest poprawna. Przetestowałem to, musiałem tylko zrestartować serwer, aby uruchomić go po sprzedaży pakietowej. –

0

Dodaj "strong_parameters" gem do pliku gem i uruchom> pakiet install w wierszu polecenia Odśwież przeglądarkę.

+0

Witamy w [tak]. Czy mógłbyś rozwinąć swoją odpowiedź? –

1

Jeśli ktoś korzysta Mongoid, można rozwiązać ten problem przez dodanie następujących do inicjatora:

Mongoid::Document.send(:include, ActiveModel::ForbiddenAttributesProtection) 
Powiązane problemy