-
Notifications
You must be signed in to change notification settings - Fork 385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Headache with "has_many through" associations #616
Comments
Can a paragraph also be linked to a document directly? If i understand correctly, it cannot. You can easily, without problems, have a nested form mulitple levels deep. So when editing the document, show the sections, and the link_to_add a new section. In the partial for the section, you show the nested paragraphs, and a link to add a new paragraph. If that does not work, please show for instance your view-code, so we can continue from that. |
Thank you so much for responding (and so quickly, too). So, rather than nest Paragraphs as a subform of Sections, I'd prefer to lay these 2 forms out side-by-side.
|
Ok, please explain then, if your database is structured as
This way you can easily edit the paragraphs and sections side by side, but when you are creating a new paragraph, should that not have the context of a section? Also: what is a meaning of a paragraph without their section. And of course: since your objects are different, but I imagine it is the same right: you can easily list all the graphshapes and the connectors, but when you try to create a new connector, it has ultimately need the context of a graphshape to be created, no? So imho the side by side option falls flat at that moment. Mind you, you could do something using xhr/remote forms, let the user choose from a list of graph-shapes to connect from and to, but cocoon will not be much help in that scenario. |
You have read my mind, as I am now fighting with Rails 6 to display the Graph Connector "new" form in a modal window. I think this is the best way, since a side-by-side scenario makes the most sense to me. See, the relationships of my objects and Document-Sections-Paragraphs are almost exact, except that, for my scenario:: So, imagine, you have 3 or 4 Shapes, and you want to start connecting them. Wellllll, your new line (the Shape Connector) can start at Shape 1 and end at Shape 2, or it can end at Shape 3, or you can change it to start at Shape 3 and go to Shape 2.... see ... it's not quite as rigid as Paragraphs are to Sections. The Connectors are very fickle and change their minds about which Shapes they belong to :-) That's why it's too hard for me to envision putting the Connectors nested under Shapes, because they're meant to be super-changeable. I'm glad to know we agree that some kind of modal window for the Connectors is my best way for me to have my Connectors next to, rather than nested under, the Shapes. Now if I could just get the modals to work! Oh, Rails 6....augh! Lol :-) Thank you so much for your help! I am so glad I had a chance to sound all of this out with you. Cocoon rocks! |
But still one could argue that the "connector", implementing a connection, is maybe less relevant (in the view) as the connection itself. So one could go for a form like this:
Enfin: struggling a bit with the naming, but such a form would be possible, since you have the correct has-many relationships. Of course ideally you would show and edit this graphically. Also not entirely sure still if cocoon is the ideal candidate for this, since it edits a form in its entirety and as such it is not very well in showing a "dynamic" state. E.g. if you add a connection, it will change the state of the shapes immediately? And maybe also the possible shapes to connect will alter when a connection is added or removed. Thank you for this different problem to think about, that is always inspiring for me too. |
Hey, Nathan!
I'm attempting to use Cocoon's dynamic goodness with a very simple demo project that consists of 3 models.
The only problem I'm running into is that my tables have a "Document | Sections | Paragraphs" structure.
Because Documents have many Sections, and Sections have many Paragraphs, I'm only able to render Documents --> Sections with "link_to_add_association"; when I try to render Documents --> Paragraphs, I receive an error::
"Cannot modify association 'Document#section_paragraphs' because the source reflection class 'Paragraphs' is associated to 'Section' via :has_many.
I can't really change my associations, because it is just true that 1 Document will have many Sections, and 1 Section will have many Paragraphs. Sections don't belong to Paragraphs, but since it's being used as a "through", Rails is getting (and giving) a headache.
Is there a way around this? I'm tempted to just put a *#@ document_id in the Paragraphs table, but I'd like to avoid that, if possible.
Thank you!
The text was updated successfully, but these errors were encountered: