OK, I don't know why but it happens all the time that after posting a
problem in a forum I am able to solve the problem, nearly!!!

I think I was really on the wrong track!

Now I added the following code in my patent view:

  <%params = {:watchedfamily => {:Prio_No => "666666", :title =>
"Please", :watchedmembers_attributes => [{:Pub_No => "Test1"},
{:Pub_No => "Test2"}]}} %>
  <%Watchedfamily.create!(params[:watchedfamily]) %>

This is creating a new record with two nested records, exactlly what I
wanted. Only problem is now: HOW TO FIRE THIS WITH A BUTTON OR LINK???


Cheers



On 27 Apr., 15:18, Sebastian <sebastian.go...@googlemail.com> wrote:
> Hi,
>
> I am working on a patent database, where the user can first search the
> patent database and then save the found patent with connected patents
> (called familymembers). So I have a page called "patent" where the
> search is done and all values that I need for the database are
> available.
>
> From that page I want to store the patent with his familymembers into
> my database, to watch them. So I have the following models
>
> class Watchedfamily < ActiveRecord::Base
>   has_many :watchedmembers
>   accepts_nested_attributes_for :watchedmembers
> end
>
> class Watchedmember < ActiveRecord::Base
>   belongs_to :watchedfamily
> end
>
> On my patent page I tried to save the data with a form that looks like
> this (I had to define the controller that i want to use, because this
> form is not in the watchedfamiles view!):
>
> <% form_for :watchedfamily, :url => {:controller =>
> "watchedfamilies", :action => "create" }  do |f| %>
>     <%= f.text_field :Prio_No, :value => @prio_no %>
>     <%= f.text_field :title, :value => @title %>
>     <%= f.fields_for :watchedmembers_attributes do |x| %>
>       <p>
>       <%= x.text_field :Pub_No, :value => "Test" %>
>       </p>
>     <%end%>
>     <p><%= submit_tag "Save hidden form" %></p>
>   <% end %>
>
> That is not working! Error is: "can't convert Symbol into Integer"
>
> If I create the nested data directly in the watchedfamilies by
> clicking new and using the form below it is working:
>
> <%= form_for(@watchedfamily) do |f| %>
>   <div class="field">
>     <%= f.label :Prio_No %><br />
>     <%= f.text_field :Prio_No %>
>   </div>
>   <div class="field">
>     <%= f.label :title %><br />
>     <%= f.text_field :title %>
>   </div>
>    <%= f.fields_for :watchedmembers do |x| %>
>       <p>
>       <%= x.text_field :Pub_No, :value => "Test" %>
>       </p>
>     <%end%>
>   <div class="actions">
>     <%= f.submit %>
>   </div>
> <% end %>
>
> The problem is that my first approach is generating the following
> request:
>
> Parameters: {"watchedfamily"=>{"Prio_No"=>"123456",
> "title"=>"Whatever", "watchedmembers_attributes"=>{"Pub_No"=>"Test"}},
> "commit"=>"Create Watchedfamily"}
>
> Where my second approach, directly from the watchedfamilies is
> generating the following request:
>
> Parameters: {"watchedfamily"=>{"Prio_No"=>"123456",
> "title"=>"Whatever",
> "watchedmembers_attributes"=>{"0"=>{"Pub_No"=>"Test"}}},
> "commit"=>"Create Watchedfamily"}
>
> First one watchedmembers_attributes is a string, second one is an
> array.
>
> If I change the line in my form from
> <%= f.fields_for :watchedmembers_attributes do |x| %>
> to
> <%= f.fields_for :watchedmembers do |x| %>
>
> I got the error: "Watchedmember(#26928120) expected, got
> Array(#5756196)"
>
> Maybe I am on a wrong track. I just want to save a nested value
> (patentfamily with its family members to my database!)
> I already watched tutorials and asked google, but I didn't find a
> solution to my problem. I hope I get help here!!!
>
> Cheers,
> Sebastian

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to