[Rails] Re: Reading value from .yml file in controller
Hi Why I am not using a migration with default values is my requirement is not that.. Sijo -- 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@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~--~~~~--~~--~--~---
[Rails] Re: Reading value from .yml file in controller
You could create a constant in your ServiceDesk or OpenServiceDesk model (not sure how you've set your models up)... class ServiceDesk < ActiveRecord::Base DEFAULTS = {:service_desk_status_id => 1, :service_desk_category_id => 1, :service_desk_sub_category_id => 1} end Then in your controller you could use yourobject.service_desk_status_id = DEFAULTS[:service_desk_status_id] Perhaps there's a good argument against using a constant like this, I don't know, but to me it looks like a pretty simple way to do it. Or, as Fred suggested, create a migration to make the DB handle the default values, like so: change_column :tablename, :service_desk_status_id, :integer, :default => 1 On Nov 3, 4:21 am, Daniel Bush <[EMAIL PROTECTED]> wrote: > On Nov 3, 6:41 pm, Sijo Kg <[EMAIL PROTECTED]> wrote: > > > Hi > > Thanks for the reply.May I ask one more question? As Daniel Bush said > > this isn't a test fixture but just a file that is being used to set > > default values..So my question normally in which directory I can store > > this yml file whether inside models or view or anywhere? > > I can't see the reason for using yaml like this - but I guess you have > your reasons. > > Since you're set on having your controller load up a yaml file every > time it's accessed then I'd probably stick it in db/ somewhere. As > Fred says, you could put it anywhere. > > You could lazy load it to save hitting the file system every time: > class YourModel < ActiveRecord::Base > def YourModel.default_values > @@default_values ||= YAML.load_file(RAILS_ROOT+'/db/ > get_value.yml') > end > end > > -- > Daniel Bush --~--~-~--~~~---~--~~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~--~~~~--~~--~--~---
[Rails] Re: Reading value from .yml file in controller
On Nov 3, 6:41 pm, Sijo Kg <[EMAIL PROTECTED]> wrote: > Hi > Thanks for the reply.May I ask one more question? As Daniel Bush said > this isn't a test fixture but just a file that is being used to set > default values..So my question normally in which directory I can store > this yml file whether inside models or view or anywhere? > I can't see the reason for using yaml like this - but I guess you have your reasons. Since you're set on having your controller load up a yaml file every time it's accessed then I'd probably stick it in db/ somewhere.As Fred says, you could put it anywhere. You could lazy load it to save hitting the file system every time: class YourModel < ActiveRecord::Base def YourModel.default_values @@default_values ||= YAML.load_file(RAILS_ROOT+'/db/ get_value.yml') end end -- Daniel Bush --~--~-~--~~~---~--~~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~--~~~~--~~--~--~---
[Rails] Re: Reading value from .yml file in controller
On Nov 3, 7:41 am, Sijo Kg <[EMAIL PROTECTED]> wrote: > Hi > Thanks for the reply.May I ask one more question? As Daniel Bush said > this isn't a test fixture but just a file that is being used to set > default values..So my question normally in which directory I can store > this yml file whether inside models or view or anywhere? > You can store it anywhere you want really (although I'd just stick with letting the database handle default values) Fred > Sijo > -- > Posted viahttp://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@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~--~~~~--~~--~--~---
[Rails] Re: Reading value from .yml file in controller
Hi Thanks for the reply.May I ask one more question? As Daniel Bush said this isn't a test fixture but just a file that is being used to set default values..So my question normally in which directory I can store this yml file whether inside models or view or anywhere? Sijo -- 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@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~--~~~~--~~--~--~---
[Rails] Re: Reading value from .yml file in controller
On Nov 3, 5:45 pm, mrbless <[EMAIL PROTECTED]> wrote: > Assuming that your yaml file is in test/fixtures directory. Do > something like this > #say ticket is an object going to be created > yml=File.open("#{RAILS_ROOT}/test/fixture/get_value.yml){|ym| > YAML::load(ym) } > ticket.service_desk_status_id=yml["sd"] > ["service_desk_status_id"].to_i #assuming it to be integer > ticket.service_desk_category_id=yml["sd"] > ["service_desk_category_id"].to_i > ticket.service_desk_sub_category_id=yml["sd"] > ["service_desk_sub_category_id"].to_i > I was going to take a different tack. Assuming this isn't a test fixture but just a file that is being used from somewhere to set default values for new objects, then you could do: default_values=YAML.load_file('path/to/get_value.yml') There are probably other ways to set defaults rather than loading up a file like this though. You could embed them in a class method in the model and just pull them out when you need them. Or maybe apply them in a callback (http:// api.rubyonrails.org/classes/ActiveRecord/Callbacks.html) like before_create. Or use :default in your migration when defining the table - might not be appropriate doing this with id's though. Callback example: class Foo < ActiveRecord::Base before_create :apply_defaults private def apply_defaults self.field1='val1' if self.field1.blank? end end -- Daniel Bush --~--~-~--~~~---~--~~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~--~~~~--~~--~--~---
[Rails] Re: Reading value from .yml file in controller
Assuming that your yaml file is in test/fixtures directory. Do something like this #say ticket is an object going to be created yml=File.open("#{RAILS_ROOT}/test/fixture/get_value.yml){|ym| YAML::load(ym) } ticket.service_desk_status_id=yml["sd"] ["service_desk_status_id"].to_i #assuming it to be integer ticket.service_desk_category_id=yml["sd"] ["service_desk_category_id"].to_i ticket.service_desk_sub_category_id=yml["sd"] ["service_desk_sub_category_id"].to_i On Nov 3, 10:49 am, Sijo Kg <[EMAIL PROTECTED]> wrote: > Hi > I have a controller open_service_desk and create action .Inside the > action when create a ticket I need to get default values of some fields > from a yml file say get_value.yml In that file I am storing values > like ..(I dont know whether this the right way)..Why I am storing this > is these are mandatory fields and I have set validation also these are > not get from the user directly. > > sd: > service_desk_status_id: 1 > service_desk_category_id: 1 > service_desk_sub_category_id: 1 > > How can I read this in the action? > > Thanks in advance > Sijo > -- > Posted viahttp://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@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~--~~~~--~~--~--~---