Hi,
in the view I have now:
 <%= select_tag("parent_id", 
 "<option value=''0''>Please
select</option>" +
 options_from_collection_for_select(@items, :id, :name)) %>
instead of:
 <%= f.collection_select :parent_id, @items, :id, :name, :prompt =>
"Please select" %>
Then I can find the parent in the controller:
 @parent = Item.find(params[:parent_id])
and add the parent (id) to the child with the help of one of the BNS methods
(and update lft and rgt):
 @item.move_to_child_of @parent
Thanks
Andrea
*Von:* "Stephen Schor" <beholdthepanda at gmail.com>
*Gesendet:* 04.11.08 01:33:35
*An:* betternestedset-talk at rubyforge.org
*Betreff:* Re: [Betternestedset-talk] Problem with parent_id
Heyo Andrea...
I save the node - then end up calling .move_to_child_of(parent_id).
My models have their own methods that end up calling a few of the BNS methods.
This is copied and pasted directly from the plugin''s README
in acts_as_nested_set:
 # adds a new item at the "end" of the tree, i.e. with child.left =
max(tree.right) + 1
 child = MyClass.create(:name => "child1")
 # now move the item to its desired location
 child.move_to_child_of my_item
You can use:
* <tt>move_to_child_of</tt>
* <tt>move_to_right_of</tt>
* <tt>move_to_left_of</tt>
and pass them an id or an object.
-Stephen
On Mon, Nov 3, 2008 at 11:49 AM, Andrea Jahn <anja-email1 at web.de
[mailto:anja-email1 at web.de]> wrote:
Hi,
I found out that the parent_id is a protected attribute. So I cannot write this
attribute
without using the API of BetterNestedSet. There might be a good reason for that.
Because of that it is not possible to use a field in the form to select the
parent_id (f.collection_select)
of the model resource. I will find another way for the user to select the item,
which should be the parent
for the new item.
Andrea
 
Hi,
I tried to make a simple example with BetterNestedSet and have a problem with
the parent_id.
Migration:
------------
class CreateItems < ActiveRecord ::Migration
 def self.up
 create_table :items do |t|
 # nested set
 t.integer :root_id
 t.integer :parent_id
 t.integer :lft, :null => false 
 t.integer :rgt, :null => false
 t.string :name, :limit => 255, :null => false, :default =>
""
 t.string : description, :limit => 512, :null => false, :default =>
""
 t.integer :hw_model_id, :null => false
 t.boolean :deleted, :null => false, :default => false
 t.timestamps
 end
 end
 def self.down
 drop_table :items
 end
end
In the view for entering a new item there''s a selection box for
selecting the parent node (value = id).
Request parameters posted to the action create:
--------------------------------------------------------------
{"commit"=>"Create",
 "authenticity_token"=>"6815a1cad4c491f5a243263eafdd4275ba86697b",
 "item"=>{"name"=>"hdhdfhdfhfh",
 "hw_model_id"=>"996332897",
 "description"=>"",
 "parent_id"=>"11",
 "workaround_id"=>"11"}}
Controller:
-------------
def create
 @item = Item.new(params[:item])
 p @item.parent_id <-------------------------- nil ?????
 p @item.workaround_id
 @parent = Item.find(@item.workaround_id)
 if @parent
 p "parent gefunden"
 @item.root_id = @parent.root_id
 end
 if @item.save
 if not @parent
 p "parent nicht gefunden"
 # this item has no parent, so it is the root of a new tree
 @item.update_attribute("root_id", @item.id [http://item.id/])
 else
 @item.move_to_child_of @parent
 end
 
 flash[:notice] = ''Item was successfully created.'' 
 format.html { redirect_to(@item) } <------------------------ error: too few
arguments ????
 format.xml { render :xml => @item, :status => :created, :location =>
@item }
 else
 format.html { render :action => "new" }
 format.xml { render :xml => @item.errors, :status =>
:unprocessable_entity }
 end
end
Logfile:
--------
 Parameters: {"commit"=>"Create",
"authenticity_token"=>"6815a1cad4c491f5a243263eafdd4275ba86697b",
"acti on"=>"create",
"controller"=>"items",
"item"=>{"name"=>"hdhdfhdfhfh",
"hw_model_id"=>"996332897",
"description"=>"",
"parent_id"=>"11",
"workaround_id"=>"11"}}
 [4;35;1mItem Columns (0.031000)[0m [0mSHOW FIELDS FROM `items`[0m
WARNING: Can''t mass-assign these protected attributes: parent_id
!!!!!!!!!!!!!!!!!!!!!!!!
-------------------------
I have installed the plugin 
svn://rubyforge.org/var/svn/betternestedset/tags/stable/betternestedset
[http://rubyforge.org/var/svn/betternestedset/tags/stable/betternestedset]
and I''m using Rails 2.1.0
Thanks in advance
Andrea	
	
Schon geh?rt? Bei WEB.DE [http://web.de/] gibt'' s viele kostenlose
Spiele:
*http://games.entertainment.web.de/de/entertainment/games/free/index.html*
[http://games.entertainment.web.de/de/entertai%0A+nment/games/free/index.html]
_______________________________________________
Betternestedset-talk mailing list
Betternestedset-talk at rubyforge.org [mailto:Betternestedset-talk at
rubyforge.org]
http://rubyforge.org/mailman/listinfo/betternestedset-talk
[http://rubyforge.org/mailman/listinfo/betternestedset-talk]
_______________________________________________Betternestedset-talk mailing
listBetternestedset-talk at
rubyforge.orghttp://rubyforge.org/mailman/listinfo/betternestedset-talk
	
"Run, Fatboy, Run" sowie "Rails & Ties" kostenlos
anschauen!
Blockbuster-Gutscheine sichern unter *http://www.blockbuster.web.de*
[http://www.blockbuster.web.de]
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/betternestedset-talk/attachments/20081106/839539c8/attachment.html>