Is there a way I can have a model that''s basically what would be used to simply encapsulate some data? Here''s my situation. I have a search form that contains name fields and two date fields outputted using date_select. I created a Search model but don''t have it tied to ActiveRecord. I''d like to do something like the following: Search Controller .... @search = MySearch.new(@params[:search]) .... Search View ... date_select "search", "from_date", :class => "text", :start_year => 2007, :order => [:month, :day, :year] ... Problem is, since it isn''t tied to ActiveRecord so it''s not associated with the database, I''m not sure how I''d go about creating the model to work properly with the html helpers. I tried creating some local variables using write_attribute but that''s part of ActiveRecord so it won''t work. Any ideas? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Maybe I should generalize my question a little more. How should I handle a date_select that isn''t tied directly to my DB model? I just need the date select values for handling the find conditions. But without a model, I can''t seem to set a default value on the date_select. The Barge wrote:> Is there a way I can have a model that''s basically what would be used to > simply encapsulate some data? > > Here''s my situation. I have a search form that contains name fields and > two date fields outputted using date_select. I created a Search model > but don''t have it tied to ActiveRecord. I''d like to do something like > the following: > > Search Controller > .... > @search = MySearch.new(@params[:search]) > .... > > Search View > ... > date_select "search", "from_date", :class => "text", :start_year => > 2007, :order => [:month, :day, :year] > ... > > Problem is, since it isn''t tied to ActiveRecord so it''s not associated > with the database, I''m not sure how I''d go about creating the model to > work properly with the html helpers. I tried creating some local > variables using write_attribute but that''s part of ActiveRecord so it > won''t work. > > Any ideas?-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
The Barge wrote:> Is there a way I can have a model that''s basically what would be used to > simply encapsulate some data? > > Here''s my situation. I have a search form that contains name fields and > two date fields outputted using date_select. I created a Search model > but don''t have it tied to ActiveRecord. I''d like to do something like > the following: > > Search Controller > .... > @search = MySearch.new(@params[:search]) > .... > > Search View > ... > date_select "search", "from_date", :class => "text", :start_year => > 2007, :order => [:month, :day, :year] > ... > > Problem is, since it isn''t tied to ActiveRecord so it''s not associated > with the database, I''m not sure how I''d go about creating the model to > work properly with the html helpers. I tried creating some local > variables using write_attribute but that''s part of ActiveRecord so it > won''t work. > > Any ideas?Since ruby is a duck-typed language, as long as your Search model quacks like ActiveRecord, than everything should be fine. And I believe the form helpers simply call the attribute as a method to get the value. So: <%= text_field ''foo'', ''bar'' %> Will get its value from: @foo.bar Knowing that, we can define a class with attr_accessor''s for any instance variables we want to make from fields out of. I just tried this simple experiment. Seems to work for me. #model class Foo attr_accessor :bar def initialize @bar = ''testing'' end end #controller def foo @foo = Foo.new end #view <%= text_field ''foo'', ''bar'' %> yields: <input id="foo_bar" type="text" value="testing" name="foo[bar]"/> -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 2/22/07, Alex Wayne <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > > The Barge wrote: > > Is there a way I can have a model that''s basically what would be used to > > simply encapsulate some data? > > > > Here''s my situation. I have a search form that contains name fields and > > two date fields outputted using date_select. I created a Search model > > but don''t have it tied to ActiveRecord. I''d like to do something like > > the following: > > > > Search Controller > > .... > > @search = MySearch.new(@params[:search]) > > .... > > > > Search View > > ... > > date_select "search", "from_date", :class => "text", :start_year => > > 2007, :order => [:month, :day, :year] > > ... > > > > Problem is, since it isn''t tied to ActiveRecord so it''s not associated > > with the database, I''m not sure how I''d go about creating the model to > > work properly with the html helpers. I tried creating some local > > variables using write_attribute but that''s part of ActiveRecord so it > > won''t work. > > > > Any ideas? > > Since ruby is a duck-typed language, as long as your Search model quacks > like ActiveRecord, than everything should be fine. And I believe the > form helpers simply call the attribute as a method to get the value.Tha my not be entirely true. It depends on what you want out of it. It''s very difficult for example to use validation if you don''t use AR. There are a couple of plugins you may find useful http://www.agilewebdevelopment.com/plugins/active_form http://www.agilewebdevelopment.com/plugins/activerecord_base_without_table Hope that helps --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
No... super super easy to do validations, etc without a db. http://www.bphogan.com/learn/pdf/tableless_contact_form.pdf As always, thanks to Rick Olson for the original idea. On 2/21/07, Daniel N <has.sox-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > > On 2/22/07, Alex Wayne <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote: > > > > > > The Barge wrote: > > > Is there a way I can have a model that''s basically what would be used > > to > > > simply encapsulate some data? > > > > > > Here''s my situation. I have a search form that contains name fields > > and > > > two date fields outputted using date_select. I created a Search model > > > but don''t have it tied to ActiveRecord. I''d like to do something like > > > the following: > > > > > > Search Controller > > > .... > > > @search = MySearch.new(@params[:search]) > > > .... > > > > > > Search View > > > ... > > > date_select "search", "from_date", :class => "text", :start_year => > > > 2007, :order => [:month, :day, :year] > > > ... > > > > > > Problem is, since it isn''t tied to ActiveRecord so it''s not associated > > > with the database, I''m not sure how I''d go about creating the model to > > > > > work properly with the html helpers. I tried creating some local > > > variables using write_attribute but that''s part of ActiveRecord so it > > > won''t work. > > > > > > Any ideas? > > > > Since ruby is a duck-typed language, as long as your Search model quacks > > > > like ActiveRecord, than everything should be fine. And I believe the > > form helpers simply call the attribute as a method to get the value. > > > Tha my not be entirely true. It depends on what you want out of it. It''s > very difficult for example to use validation if you don''t use AR. > There are a couple of plugins you may find useful > > http://www.agilewebdevelopment.com/plugins/active_form > > http://www.agilewebdevelopment.com/plugins/activerecord_base_without_table > > Hope that helps > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 2/22/07, Brian Hogan <bphogan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > No... super super easy to do validations, etc without a db. > > http://www.bphogan.com/learn/pdf/tableless_contact_form.pdf > > As always, thanks to Rick Olson for the original idea.Yes this is nice... I had seen this a loooong time ago but I had no idea where I saw it. Thanx for the link This is what the active_record_base_without_table plugin does. I have pasted the entire working code of the plugin here. The save method has not been implemented in this one. module ActiveRecord class BaseWithoutTable < Base self.abstract_class = true def create_or_update errors.empty? end class << self def columns() @columns ||= [] end def column(name, sql_type = nil, default = nil, null = true) columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null) end end end end --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Alex Wayne wrote:> The Barge wrote: >> Hey thanks, I hadn''t run across the attr_accessor yet. It''s almost >> working now. Is creating an object via "search = >> Search.new(@params[:search])" an ActiveRecord thing? I''m getting a >> "wrong number of arguments (1 for 0)" on that call. If so, I''m guessing >> I''ll just have to parse/set the attributes in the model manually. > > Remeber that "params[:search]" is a hash itself, so you can handle this > in your initialize method of your model. > > class Search > FIELDS = [ > :list, > :of_attributes, > :you_want, > :as_insatnce_variables > ] > > attr_accessor *FIELDS > > def initialize(values = {}) > values.each do |name, value| > raise "Search does not have this field" unless > FIELDS.include?(name) > instance_variable_set "@#{name}", value > end > end > endExcellent information by everyone who responded to my question. I''ll give this a try (and maybe try out the activerecord base plugin that was mentioned). Thanks! -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---