Maybe an AR scope defined in the model would simplify your controller (and your life). Just a hint, sorry, but I have no time to get into it.
ciao dd On Tue, Jun 7, 2011 at 7:59 AM, Michael M <[email protected]> wrote: > Hi all, recovering Perl addict here to ask a hopefully easy question. > > First off, as someone completely new to Rails and subsequently Hobo, I > want to thank you for a very interesting and usable system for rapidly > creating a website! > Accolades aside, some of the magic that hides the inner workings, > hides them a bit too well for someone trying to learn, hence my > question. > > I'm running Ruby 1.9.1, Rails 3.0.7, and, I think, the latest version > of Hobo. I'm trying to port a simple Perl application over as my > first project. The old site uses a flat file that uses server names > generated by the website, and another that holds the location > information (city airport code, description, and last used-number). > In moving it over to Hobo, my db tables look like: > > #The nearest AirPort Code of the location in which the server lives > apc > fields do > name :string, :required, :limit => 3 > description :string > timestamps > end > > has_many :dc_locs, :dependent => :destroy > children :dc_locs > > #The Datacenter location > dc_loc > fields do > name :string, :required, :limit => 1 > description :string > timestamps > end > > belongs_to :apc > has_many :servers, :through => :server_assignments, :accessible => > true > has_many :server_assignments, :dependent => :destroy > children :server_assignments > children :servers > > #The Servers list > server > fields do > name :string > user_ip :string > svr_desc :string > timestamps > end > > #An assignment list to put them all together > server_assignment > fields do > timestamps > end > > belongs_to :server > belongs_to :dc_loc > > So far so good, everything is playing well together. > The server names have the apc imbedded in them and a 1 digit dc > location identifier. > My main question is: > > In the form that I have that edits the dc_loc (location), I'm trying > to assign server to the dc_loc and I get the select-many list but I > want to filter that 1200+ list down to just the servers that have the > apc for that dc_loc in the name. > > My application.dryml has: > > <extend tag="form" for="DcLoc"> > <old-form merge> > <field-list: fields="name, description, apc, servers"> > <servers-view:> > <select-many options="&@SList"/> > </servers-view:> > </field-list:> > </old-form> > </extend> > > And my dc_locs_controller.rb looks like spaghetti - I've tried many > things > > #def Svrs > # @SList = Server.apply_scopes( > # :search => [this.apc_id, :name] > # ) > #hobo_index @SList > #end > def edit > #hobo_show do > @sns = find_instance > @SList = > @SList = @sns.servers.where(["name > like ?", :apcs_name[this.apc_id]]) > #@sn = Server.name_contains(:apcs_name[this.apc_id]) > #@sn = Server.apply_scopes(:name_contains => > params[:name_contains]) > #@SList = @ss.to_a > # end > end > > end > > the latest one gets an error : undefined method `apc_id' for > nil:NilClass > > I've gone through all the tutorials and the recipes on the hobocentral > site and searched this list until cross-eyed, but each time I try the > different solutions I'm still getting the same full list (or none at > all). Each of the tutorials and recipes have been very helpful, but > not complete when it comes to controlling the exact way to insert > custom sql code. I've tried passing name_contains scopes and still > get the full list with a message in the console that :name_contains is > being overwritten (probably due to incorrect syntax). > > Any assistance would be greatly appreciated. Even if you point me to > another place to learn Rails better before I continue. > > Regards, > M > > -- > You received this message because you are subscribed to the Google Groups > "Hobo Users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/hobousers?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Hobo Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/hobousers?hl=en.
