Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Rails 4 habtm speichert nicht
BeitragVerfasst: 16 Apr 2017, 22:49 
Offline
Novize

Registriert: 30 Mär 2014, 22:21
Beiträge: 10
Hallo Zusammen,

ich stelle gerade mein kleines Programm von 3.1.0 auf 4.1.1 um und scheiter an der HABTM-Speicherung.
Es ist weder meine erste noch die einzige M:N-Beziehung, unser Rails 2 und 3 liefen sie immer.
Daher gehe ich aktuell davon aus, dass es irgendwie an den Strong-Parameter liegt.

Folgende Tabellen habe ich angelegt:

rundmails: betreff inhalt
users: nick email
rundmails_users. rundmail_id user_id

Die Models haben folgenden Eintrag:


1
2
3

has_and_belongs_to_many :users, join_table: :rundmails_users
has_and_belongs_to_many :rundmails, join_table: :rundmails_users

"join_table: :rundmails_users" wurde bereits aufgrund einiger Einträge hinzugefügt

Im Controller wurde hinzugefügt:


1
2
3
4
5
6
7

def rundmail_params
params.require(:rundmail).permit(:betreff, :inhalt, :user_ids => [])
end
def user_params
params.require(:user).permit(:nick, :email, :rundmail_ids => [])
end

Auch hier habe ich die unterschiedlichen Schreibweisen "user_ids: []" ausprobiert.

Der Controller hat folgende create-Funktion:


1
2
3
4
5
6
7
8
9
10
11
12
13

def create
@user = User.first
@user2 = User.find(7)
@rundmail = Rundmail.new(rundmail_params)
@rundmail.users << @user
@rundmail.users << @user2
if @rundmail.save
render 'create'
else
render action: "new"
end
end


Beim Ausführen kommt immer wieder die gleiche Fehlermeldung:


1
2
3
4
5
6
7
8
9
10

[1m [35m (0.1ms) [0m BEGIN
[1m [36mSQL (0.2ms) [0m [1mINSERT INTO `rundmails` (`betreff`, `created_at`, `inhalt`) VALUES ('nn', '2017-04-16 20:10:18', 'nn') [0m
[1m [35mSQL (0.1ms) [0m INSERT INTO `rundmails_users` (`rundmail_id`, `user_id`) VALUES (80, 3)
[1m [36mSQL (0.1ms) [0m [1mINSERT INTO `rundmails_users` (`rundmail_id`, `user_id`) VALUES (80, 7) [0m
[1m [35m (28.9ms) [0m ROLLBACK
Completed 500 Internal Server Error in 85ms

NoMethodError (undefined method `name' for nil:NilClass):
app/controllers/rundmails_controller.rb:70:in
`
create'


Ich habe mir inzwischen schon alles mögliche an evtl. Dingen ausgeben lassen, ist valid, hat 2 user usw.
Validierungen sind allesamt auskommentiert, es kann also auch daran nicht liegen.
Gebe ich die 3 Befehle in MySQL (Serverversion 5.5) direkt ein, so ist alles bestens.

Habt Ihr eine Idee? Seh ich den Wald vor lauter Bäumen nicht?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Rails 4 habtm speichert nicht
BeitragVerfasst: 16 Apr 2017, 23:29 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
Das Forum wird alsbald geschlossen, bitte auf die Mailingliste wechseln. Mehr Infos: http://forum.ruby-portal.de/viewtopic.php?f=7&t=26980 und https://www.ruby-lang.org/de/news/2017/04/14/ruby-de-list/

Vale,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Rails 4 habtm speichert nicht
BeitragVerfasst: 17 Apr 2017, 15:29 
Offline
Novize

Registriert: 30 Mär 2014, 22:21
Beiträge: 10
Oh, das ist schade... mit Mails wird man ja leider schon im Alltag zugespamt :/

Dennoch möchte ich die Lösung meines Problems kurz bekanntgeben - Ich mag keine Bugs *grrrrrrr*

Fündig wurde ich hier:

https://github.com/activescaffold/active_scaffold/issues/380

mit folgendem Eintrag:
I think there is a bug in activerecord 4.1.0 with has_cached_counter? and ruby 2.2. It was fixed on activerecord 4.1.2

Ich glaube, hier hät ich noch ewig probieren können...


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: