Thanks! I overrode the #repository as you described, and it seems to have done the trick. I did this in the model - I guess this is what you meant by "binding in a static way"?
Where do the "use 'Rails::...'" lines go? Are they required? I'm not using them right now at all, and the repository seems to be the right one on my external model. //B On Jun 29, 6:56 am, kristian <[email protected]> wrote: > what I do on almost all my projects (datamapper makes it to easy to > use morethen one repo) is that I am using nested IdentityMaps one for > the default and one for the :external repository > > use 'Rails::DataMapper::IdentityMaps', :external > use 'Rails::DataMapper::IdentityMaps' > > in order to "dispatch" the models onto the right repository I am > overwrite this method > > def self.repository(name = nil, &block) > super(:external, &block) > end > > so basically I bind the model to the :external repository in static > way. the same thing I do for transactions ! > > maybe that helps. > > - Kristian > > On Jun 29, 6:41 am, Chris Corbyn <[email protected]> wrote: > > > > > > > > > Note that you can disable that "everything is wrapped in a repository > > block" behaviour by removing this line from ApplicationController: > > > use Rails::DataMapper::Middleware::IdentityMap > > > You won't have an identity-map per-request if you do this though. > > > On 28/06/2011, at 21:48, Bence wrote: > > > > Hi, > > > > I'm new to DataMapper and run into a confusing issue to which I didn't > > > find any answers. > > > > I have two repositories (:default and :external). > > > Model "ext_model" is persisted in :external by setting the > > > default_repository_name in the model. The model works: the unit tests > > > are green and I can manipulate the model in the console without > > > problems. > > > When I run the unit tests on controller ext_model_controller#index, it > > > is green: retrieves all from ext_model, as it should. > > > But when I launch the webserver and browse to /ext_model_controller/ > > > index, I get an error message, and I see that it is looking for > > > ext_model in the :default repository (instead of :external). > > > Shouldn't both the console and the server retrieve the model the same > > > way? Am I missing something? How do I set explicitly the repository on > > > the model so that the webserver uses that? > > > If I wrap the code inside ext_model_controller#index action in > > > DataMapper.repository(:external) {...} then it works, but shouldn't > > > this be unnecessary since I already explicitly assigned a repository > > > to the model? > > > > Thanks in advance! > > > > //Bence > > > > Rails 3.0.9, dm 1.1.0 > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "DataMapper" 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 > > > athttp://groups.google.com/group/datamapper?hl=en. -- You received this message because you are subscribed to the Google Groups "DataMapper" 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/datamapper?hl=en.
