On Mon, Aug 2, 2010 at 2:19 AM, Spiralis <[email protected]> wrote: > Thanks, but that is not the problem. I know transitions well and its > "in my fingertips" so to speak. > > However. I cannot use :params => [:comment], since comment is not a > part of the model. The comment field I want to show is an ad-hoc > field, a placeholder for the user to add a comment, which I can handle > in the block after the transition: > > Something like: > > transition :foo, { :work=> :work } , :params > =>[:comment], :available_to => :user do |record| > c = Comment.new > c.body = record.comment > record.comments << c > record.save! > end > > In the :work state allow a transition that keeps state in :work, but > which allows the user to enter a comment that will be saved in a child- > relation of the model. > > I *could* add a comment-field to the model and just use it to get the > form displayed and then never really use the field in the database, > but that *really* feels like a bad hack...
The standard Rails way to do this would be to use attr_accessor to create a "virtual" field on the model, then access it in a callback. I'd recommend you do the same, in the model: attr_accessor :comment, :type => :text Then the transition will be pretty much as you've described. You may want to use: Comment.user_new(acting_user) if comments have acting_user-powered stuff. --Matt Jones -- 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.
