Hi all,
I’ve been playing around with ActiveResource for about a week now, and it’s super-cool.
That said, I’m having a little conceptual problem and I’m hoping someone smarter than me has already solved it.
If I have a model :
class FooModel < ActiveResource::Base end
and a controller :
class FoosController < ApplicationController
def new @fm = FooModel.new end end
and a view :
<%= form_tag %> <%= text_field ‘fm’, ‘name’ %> <%= end_form_tag %>
I get a NoMethodError. Which makes a lot of sense, since I can’t figure out how ActiveResource could magically know what attributes live in FooModel. My question is, what is the right way to deal with this? Add attr_accessor :name ? Or something like this :
class FooModel < ActiveResource::Base
def blank fm = new fm.attributes = { :name => nil } end end
Or is there something cool that can be done with method_missing ? Maybe :
def method_missing(method_symbol, *arguments) super #want to call the method_missing in ActiveResource::Base first… rescue NoMethodError attributes[method_symbol.to_s] => nil nil end
Or perhaps the best thing to do is not use the form helpers and add the attributes to the model object after the submit (in the controller)?
Any help or pointers would be greatly appreciated!