We could use squel, it is very sloid and AR like interface http://sequel.rubyforge.org/rdoc/files/doc/active_record_rdoc.html
Thread name: "More crap from AR 4" Mail number: 1 Date: Sat, Jul 06, 2013 In reply to: låzaro > > Hi, all, now with AR-4 is imposible to add any relation > > I mean for example: > > Blog.entries.new > > And you'll have a very weird erro. Do not happen the same thing when you do > it in the console. > > NO ONE application, work the Table.relation.new or Table.relation.create... > > except in the console... > > Could we move to datamapper??? > > > > ArgumentError at /estacion/pacientes/evolucionar/1 > > wrong number of arguments (1 for 2) > > Ruby <main>: in initialize, line 27 > Web POST localhost/estacion/pacientes/evolucionar/1 > > Jump to: > > * GET > * POST > * Cookies > * ENV > > Traceback (innermost first) > > * <main>: in initialize > * > /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/inheritance.rb: > in new > 20. end > 21. if (attrs = args.first).is_a?(Hash) > 22. if subclass = subclass_from_attrs(attrs) > 23. return subclass.new(*args, &block) > 24. end > 25. end > 26. # Delegate to the original .new > 27. super... > 28. end > 29. > 30. # True if this isn't a concrete subclass needing a STI type condition. > 31. def descends_from_active_record? > 32. if self == Base > 33. false > 34. elsif superclass.abstract_class? > * > /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/inheritance.rb: > in new > 20. end > 21. if (attrs = args.first).is_a?(Hash) > 22. if subclass = subclass_from_attrs(attrs) > 23. return subclass.new(*args, &block) > 24. end > 25. end > 26. # Delegate to the original .new > 27. super... > 28. end > 29. > 30. # True if this isn't a concrete subclass needing a STI type condition. > 31. def descends_from_active_record? > 32. if self == Base > 33. false > 34. elsif superclass.abstract_class? > * > /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/reflection.rb: > in build_association > 182. super > 183. @collection = [:has_many, :has_and_belongs_to_many].include?(macro) > 184. end > 185. > 186. # Returns a new, unsaved instance of the associated class. > +attributes+ will > 187. # be passed to the class's constructor. > 188. def build_association(attributes, &block) > 189. klass.new(attributes, &block)... > 190. end > 191. > 192. def table_name > 193. @table_name ||= klass.table_name > 194. end > 195. > 196. def quoted_table_name > * > /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/associations/association.rb: > in build_record > 235. # the target is stale. > 236. # > 237. # This is only relevant to certain associations, which is why it > returns nil by default. > 238. def stale_state > 239. end > 240. > 241. def build_record(attributes) > 242. reflection.build_association(attributes) do |record|... > 243. initialize_attributes(record) > 244. end > 245. end > 246. end > 247. end > 248. end > * > /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/associations/collection_association.rb: > in build > 107. first_or_last(:last, *args) > 108. end > 109. > 110. def build(attributes = {}, &block) > 111. if attributes.is_a?(Array) > 112. attributes.collect { |attr| build(attr, &block) } > 113. else > 114. add_to_target(build_record(attributes)) do |record|... > 115. yield(record) if block_given? > 116. end > 117. end > 118. end > 119. > 120. def create(attributes = {}, &block) > 121. create_record(attributes, &block) > * > /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/associations/collection_proxy.rb: > in build > 222. # # #<Pet id: nil, name: "Choo-Choo", person_id: 1>, > 223. # # #<Pet id: nil, name: "Brain", person_id: 1> > 224. # # ] > 225. # > 226. # person.pets.size # => 5 # size of the collection > 227. # person.pets.count # => 0 # count from database > 228. def build(attributes = {}, &block) > 229. @association.build(attributes, &block)... > 230. end > 231. alias_method :new, :build > 232. > 233. # Returns a new object of the collection type that has been > instantiated with > 234. # attributes, linked to this object and that has already been saved > (if it > 235. # passes the validations). > 236. # > * hermes.rb: in post > 1098. # el paciente viene del parametro dado > 1099. @paciente=Paciente.find_by_cama paciente > 1100. > 1101. # validamos que este listo para evolucionar > 1102. @fiebre=input.include? 'fiebre' > 1103. > 1104. # creamos el paciente nuevo > 1105. @evolucion=@paciente.evoluciones.new > :evolucion=>input.evolucion.to_s, > :fiebre=>@fiebre,:senho=>@state[:realname]... > 1106. > 1107. @evolucion.save # muestrame como quedo > 1108. redirect R(EstacionPacientesN,paciente) > 1109. > 1110. end # if > 1111. > 1112. end # post > * <main>: in block in service > * <main>: in catch > * <main>: in service > * <main>: in call > * > /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/session/abstract/id.rb: > in call > 218. > 219. def call(env) > 220. context(env) > 221. end > 222. > 223. def context(env, app=@app) > 224. prepare_session(env) > 225. status, headers, body = app.call(env)... > 226. commit_session(env, status, headers, body) > 227. end > 228. > 229. private > 230. > 231. def initialize_sid > 232. @sidbits = @default_options[:sidbits] > * > /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/session/abstract/id.rb: > in context > 218. > 219. def call(env) > 220. context(env) > 221. end > 222. > 223. def context(env, app=@app) > 224. prepare_session(env) > 225. status, headers, body = app.call(env)... > 226. commit_session(env, status, headers, body) > 227. end > 228. > 229. private > 230. > 231. def initialize_sid > 232. @sidbits = @default_options[:sidbits] > * > /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/session/abstract/id.rb: > in call > 213. @default_options = self.class::DEFAULT_OPTIONS.merge(options) > 214. @key = @default_options.delete(:key) > 215. @cookie_only = @default_options.delete(:cookie_only) > 216. initialize_sid > 217. end > 218. > 219. def call(env) > 220. context(env)... > 221. end > 222. > 223. def context(env, app=@app) > 224. prepare_session(env) > 225. status, headers, body = app.call(env) > 226. commit_session(env, status, headers, body) > 227. end > * <main>: in block in use > * (eval): in call > * (eval): in call > * <main>: in block in use > * > /usr/local/lib/ruby/gems/1.9.1/gems/camping-2.1.532/lib/camping/server.rb: in > call > 159. if key = apps.keys.grep(/^#{@reloader.name}$/i)[0] > 160. apps[key] > 161. end > 162. end > 163. > 164. def call(env) > 165. app = current_app || raise("Could not find an app called > `#{@reloader.name}`") > 166. app.call(env)... > 167. end > 168. > 169. class XSendfile > 170. def initialize(app) > 171. @app = app > 172. end > 173. > * /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/cascade.rb: in > block in call > 26. # by the server, or if it is replaced by a middleware action. Cascade > 27. # replaces the body each time a cascade happens. It is assumed that > nil > 28. # does not respond to close, otherwise the previous application body > 29. # will be closed. The final application body will not be closed, as it > 30. # will be passed to the server as a result. > 31. last_body.close if last_body.respond_to? :close > 32. > 33. result = app.call(env)... > 34. last_body = result[2] > 35. break unless @catch.include?(result[0].to_i) > 36. end > 37. > 38. result > 39. end > 40. > * /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/cascade.rb: in > each > 17. end > 18. > 19. def call(env) > 20. result = NotFound > 21. > 22. last_body = nil > 23. > 24. @apps.each do |app|... > 25. # The SPEC says that the body must be closed after it has been > iterated > 26. # by the server, or if it is replaced by a middleware action. Cascade > 27. # replaces the body each time a cascade happens. It is assumed that > nil > 28. # does not respond to close, otherwise the previous application body > 29. # will be closed. The final application body will not be closed, as it > 30. # will be passed to the server as a result. > 31. last_body.close if last_body.respond_to? :close > * /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/cascade.rb: in > call > 17. end > 18. > 19. def call(env) > 20. result = NotFound > 21. > 22. last_body = nil > 23. > 24. @apps.each do |app|... > 25. # The SPEC says that the body must be closed after it has been > iterated > 26. # by the server, or if it is replaced by a middleware action. Cascade > 27. # replaces the body each time a cascade happens. It is assumed that > nil > 28. # does not respond to close, otherwise the previous application body > 29. # will be closed. The final application body will not be closed, as it > 30. # will be passed to the server as a result. > 31. last_body.close if last_body.respond_to? :close > * > /usr/local/lib/ruby/gems/1.9.1/gems/camping-2.1.532/lib/camping/server.rb: in > call > 168. > 169. class XSendfile > 170. def initialize(app) > 171. @app = app > 172. end > 173. > 174. def call(env) > 175. status, headers, body = @app.call(env)... > 176. > 177. if key = headers.keys.grep(/X-Sendfile/i).first > 178. filename = headers[key] > 179. content = open(filename,'rb') { | io | io.read} > 180. headers['Content-Length'] = size(content).to_s > 181. body = [content] > 182. end > * /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/lint.rb: in _call > 42. assert("No env given") { env } > 43. check_env env > 44. > 45. env['rack.input'] = InputWrapper.new(env['rack.input']) > 46. env['rack.errors'] = ErrorWrapper.new(env['rack.errors']) > 47. > 48. ## and returns an Array of exactly three values: > 49. status, headers, @body = @app.call(env)... > 50. ## The *status*, > 51. check_status status > 52. ## the *headers*, > 53. check_headers headers > 54. > 55. check_hijack_response headers, env > 56. > * /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/lint.rb: in call > 30. ## after to catch all mistakes. > 31. > 32. ## = Rack applications > 33. > 34. ## A Rack application is a Ruby object (not a class) that > 35. ## responds to +call+. > 36. def call(env=nil) > 37. dup._call(env)... > 38. end > 39. > 40. def _call(env) > 41. ## It takes exactly one argument, the *environment* > 42. assert("No env given") { env } > 43. check_env env > 44. > * > /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/showexceptions.rb: in > call > 17. > 18. def initialize(app) > 19. @app = app > 20. @template = ERB.new(TEMPLATE) > 21. end > 22. > 23. def call(env) > 24. @app.call(env)... > 25. rescue StandardError, LoadError, SyntaxError => e > 26. exception_string = dump_exception(e) > 27. > 28. env["rack.errors"].puts(exception_string) > 29. env["rack.errors"].flush > 30. > 31. if prefers_plain_text?(env) > * /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/commonlogger.rb: > in call > 26. def initialize(app, logger=nil) > 27. @app = app > 28. @logger = logger > 29. end > 30. > 31. def call(env) > 32. began_at = Time.now > 33. status, header, body = @app.call(env)... > 34. header = Utils::HeaderHash.new(header) > 35. body = BodyProxy.new(body) { log(env, status, header, began_at) } > 36. [status, header, body] > 37. end > 38. > 39. private > 40. > * /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/chunked.rb: in > call > 36. end > 37. > 38. def initialize(app) > 39. @app = app > 40. end > 41. > 42. def call(env) > 43. status, headers, body = @app.call(env)... > 44. headers = HeaderHash.new(headers) > 45. > 46. if env['HTTP_VERSION'] == 'HTTP/1.0' || > 47. STATUS_WITH_NO_ENTITY_BODY.include?(status) || > 48. headers['Content-Length'] || > 49. headers['Transfer-Encoding'] > 50. [status, headers, body] > * > /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/content_length.rb: in > call > 7. include Rack::Utils > 8. > 9. def initialize(app) > 10. @app = app > 11. end > 12. > 13. def call(env) > 14. status, headers, body = @app.call(env)... > 15. headers = HeaderHash.new(headers) > 16. > 17. if !STATUS_WITH_NO_ENTITY_BODY.include?(status.to_i) && > 18. !headers['Content-Length'] && > 19. !headers['Transfer-Encoding'] && > 20. body.respond_to?(:to_ary) > 21. > * > /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/handler/webrick.rb: > in service > 53. env["QUERY_STRING"] ||= "" > 54. unless env["PATH_INFO"] == "" > 55. path, n = req.request_uri.path, env["SCRIPT_NAME"].length > 56. env["PATH_INFO"] = path[n, path.length-n] > 57. end > 58. env["REQUEST_PATH"] ||= [env["SCRIPT_NAME"], env["PATH_INFO"]].join > 59. > 60. status, headers, body = @app.call(env)... > 61. begin > 62. res.status = status.to_i > 63. headers.each { |k, vs| > 64. if k.downcase == "set-cookie" > 65. res.cookies.concat vs.split("\n") > 66. else > 67. # Since WEBrick won't accept repeated headers, > * /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb: in service > 131. > 132. servlet, options, script_name, path_info = search_servlet(req.path) > 133. raise HTTPStatus::NotFound, "`#{req.path}' not found." unless servlet > 134. req.script_name = script_name > 135. req.path_info = path_info > 136. si = servlet.get_instance(self, *options) > 137. @logger.debug(format("%s is invoked.", si.class.name)) > 138. si.service(req, res)... > 139. end > 140. > 141. def do_OPTIONS(req, res) > 142. res["allow"] = "GET,HEAD,POST,OPTIONS" > 143. end > 144. > 145. ## > * /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb: in run > 87. if callback = server[:RequestCallback] > 88. callback.call(req, res) > 89. elsif callback = server[:RequestHandler] > 90. msg = ":RequestHandler is deprecated, please use :RequestCallback" > 91. @logger.warn(msg) > 92. callback.call(req, res) > 93. end > 94. server.service(req, res)... > 95. rescue HTTPStatus::EOFError, HTTPStatus::RequestTimeout => ex > 96. res.set_error(ex) > 97. rescue HTTPStatus::Error => ex > 98. @logger.error(ex.message) > 99. res.set_error(ex) > 100. rescue HTTPStatus::Status => ex > 101. res.status = ex.code > * /usr/local/lib/ruby/1.9.1/webrick/server.rb: in block in start_thread > 184. addr = sock.peeraddr > 185. @logger.debug "accept: #{addr[3]}:#{addr[1]}" > 186. rescue SocketError > 187. @logger.debug "accept: <address unknown>" > 188. raise > 189. end > 190. call_callback(:AcceptCallback, sock) > 191. block ? block.call(sock) : run(sock)... > 192. rescue Errno::ENOTCONN > 193. @logger.debug "Errno::ENOTCONN raised" > 194. rescue ServerError => ex > 195. msg = "#{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}" > 196. @logger.error msg > 197. rescue Exception => ex > 198. @logger.error ex > > Request information > > GET > > No GET data. > > POST > > Variable Value > evolucion "esto es una evolucion de ejemplo\r\n" > fiebre "No tiene Fiebre" > > COOKIES > > Variable Value > "BAh7B0kiD3Nlc3Npb25faWQGOgZFRiJFNDMyZTY4MmNhY2YzOWQ4MGY5ZGZi\ > nNTk3NWM0YTY3N2Q5OGMxNmQ3MWFjMzkwOWNiMzFiOGJhMDQ1YTM1ZjU5OUki\ > hermes.state nDGNhbXBpbmcGOwBGews6CWF1dGhUOgl1c2VySSIKbnVyc2UGOwBUOg11c2Vy\ > nbmFtZUAKOg1yZWFsbmFtZUkiGkZsb3JlbmNlIE5pZ3RodGluZ2FsZQY7AFQ6\ > > nDWVzdGFjaW9uSSIUL2VzdGFjaW9uL251cnNlBjoNZW5jb2RpbmciEElTTy04\nODU5LTE1OgplbWFpbEkiFWxhemFyb0Bsb2NhbGhvc3QGOwBU\ > n--10d7b651e46bb5ea8946449f2908aded3c946e42" > > Rack ENV > > Variable > > > Value > CONTENT_LENGTH 71 > CONTENT_TYPE application/x-www-form-urlencoded > GATEWAY_INTERFACE CGI/1.1 > HTTP_ACCEPT text/html, text/*;q=0.5, image/*, > application/*, audio/*, video/*, message/* > HTTP_ACCEPT_ENCODING gzip, compress, bzip, bzip2, deflate > HTTP_ACCEPT_LANGUAGE en;q=1.0 > HTTP_COOKIE hermes.state= > > BAh7B0kiD3Nlc3Npb25faWQGOgZFRiJFNDMyZTY4MmNhY2YzOWQ4MGY5ZGZi%0ANTk3NWM0YTY3N2Q5OGMxNmQ3MWFjMzkwOWNiMzFiOGJhMDQ1YTM1ZjU5OUki%0ADGNhbXBpbmcGOwBGews6CWF1dGhUOgl1c2VySSIKbnVyc2UGOwBUOg11c2Vy%0AbmFtZUAKOg1yZWFsbmFtZUkiGkZsb3JlbmNlIE5pZ3RodGluZ2FsZQY7AFQ6%0ADWVzdGFjaW9uSSIUL2VzdGFjaW9uL251cnNlBjoNZW5jb2RpbmciEElTTy04%0AODU5LTE1OgplbWFpbEkiFWxhemFyb0Bsb2NhbGhvc3QGOwBU%0A--10d7b651e46bb5ea8946449f2908aded3c946e42 > HTTP_COOKIE2 $Version="1" > HTTP_HOST localhost:3301 > HTTP_REFERER > http://localhost:3301/estacion/pacientes/evolucionar/1 > HTTP_USER_AGENT w3m/0.5.3+cvs-1.1055 > HTTP_VERSION HTTP/1.1 > PATH_INFO /estacion/pacientes/evolucionar/1 > QUERY_STRING > REMOTE_ADDR 127.0.0.1 > REMOTE_HOST 127.0.0.1 > REQUEST_METHOD POST > REQUEST_PATH /estacion/pacientes/evolucionar/1 > REQUEST_URI > http://localhost:3301/estacion/pacientes/evolucionar/1 > SCRIPT_NAME > SERVER_NAME localhost > SERVER_PORT 3301 > SERVER_PROTOCOL HTTP/1.1 > SERVER_SOFTWARE WEBrick/1.3.1 (Ruby/1.9.3/2013-02-06) > :input > rack.errors #<Rack::Lint::ErrorWrapper:0xa564a8c > @error=#<IO:<STDERR>>> > rack.input #<Rack::Lint::InputWrapper:0xa564adc > @input=#<StringIO:0xa5fe560>> > rack.multiprocess false > rack.multithread true > > {"hermes.state"=>"BAh7B0kiD3Nlc3Npb25faWQGOgZFRiJFNDMyZTY4MmNhY2YzOWQ4MGY5ZGZi\ > rack.request.cookie_hash > nNTk3NWM0YTY3N2Q5OGMxNmQ3MWFjMzkwOWNiMzFiOGJhMDQ1YTM1ZjU5OUki\nDGNhbXBpbmcGOwBGews6CWF1dGhUOgl1c2VySSIKbnVyc2UGOwBUOg11c2Vy\ > > nbmFtZUAKOg1yZWFsbmFtZUkiGkZsb3JlbmNlIE5pZ3RodGluZ2FsZQY7AFQ6\nDWVzdGFjaW9uSSIUL2VzdGFjaW9uL251cnNlBjoNZW5jb2RpbmciEElTTy04\ > > nODU5LTE1OgplbWFpbEkiFWxhemFyb0Bsb2NhbGhvc3QGOwBU\n--10d7b651e46bb5ea8946449f2908aded3c946e42"} > rack.request.cookie_string hermes.state= > > BAh7B0kiD3Nlc3Npb25faWQGOgZFRiJFNDMyZTY4MmNhY2YzOWQ4MGY5ZGZi%0ANTk3NWM0YTY3N2Q5OGMxNmQ3MWFjMzkwOWNiMzFiOGJhMDQ1YTM1ZjU5OUki%0ADGNhbXBpbmcGOwBGews6CWF1dGhUOgl1c2VySSIKbnVyc2UGOwBUOg11c2Vy%0AbmFtZUAKOg1yZWFsbmFtZUkiGkZsb3JlbmNlIE5pZ3RodGluZ2FsZQY7AFQ6%0ADWVzdGFjaW9uSSIUL2VzdGFjaW9uL251cnNlBjoNZW5jb2RpbmciEElTTy04%0AODU5LTE1OgplbWFpbEkiFWxhemFyb0Bsb2NhbGhvc3QGOwBU%0A--10d7b651e46bb5ea8946449f2908aded3c946e42 > rack.request.form_hash {"fiebre"=>"No tiene Fiebre", > "evolucion"=>"esto es una evolucion de ejemplo\r\n"} > rack.request.form_input #<Rack::Lint::InputWrapper:0xa564adc > @input=#<StringIO:0xa5fe560>> > rack.request.form_vars > fiebre=No+tiene+Fiebre&evolucion=esto+es+una+evolucion+de+ejemplo%0D%0A > rack.request.query_hash {} > rack.request.query_string > rack.run_once false > rack.session > {"session_id"=>"432e682cacf39d80f9dfb5975c4a677d98c16d71ac3909cb31b8ba045a35f599", > "camping"=>{:auth=>true, :user=>"nurse", > :username=>"nurse", :realname=>"Florence > Nigthtingale", :estacion=>"/estacion/nurse", :email=>"lazaro@localhost"}} > rack.session.options {:path=>"/", :domain=>nil, > :expire_after=>nil, :secure=>false, :httponly=>true, :defer=>false, > :renew=>false, :sidbits=>128, > :secure_random=>SecureRandom, > :secret=>"*Dorothy+Ogrem!", > :coder=>#<Rack::Session::Cookie::Base64::Marshal:0xa395620>} > rack.session.unpacked_cookie_data > {"session_id"=>"432e682cacf39d80f9dfb5975c4a677d98c16d71ac3909cb31b8ba045a35f599", > "camping"=>{:auth=>true, :user=>"nurse", > :username=>"nurse", :realname=>"Florence > Nigthtingale", :estacion=>"/estacion/nurse", :email=>"lazaro@localhost"}} > rack.url_scheme http > rack.version [1, 2] > > You're seeing this error because you use Rack::ShowExceptions. > > > _______________________________________________ > Camping-list mailing list > Camping-list@rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list > -- -------- Warning! ------------ 100'000 pelos de escoba fueron introducidos satisfactoriamente en su puerto USB. _______________________________________________ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list