[Nitro] nitro 0.40.0 changes?

Michael Fellinger m.fellinger at gmail.com
Sat Nov 18 04:41:13 EST 2006


On 11/17/06, Matt Rose <mattrose at folkwolf.net> wrote:
>
> Sorry to be a bother about this guys, but now I'm getting an error
> message.  I kind of suspected this would happen, because of the params.
>
> How did we decide parameters would be called now in the action now?
>
> I have a setup page that takes form input, and passes it as GET
> params back to the same page.  When I pass it no params, it works
> great, but when I try and pass it params via a GET request, I get this:
>
> http://localhost:9000/setup?title=masterblog&desc=master
> +blog&user=matt&pass=pass
>
> Path: /setup
> Wrong parameter count for setup().
>
> the setup function in the controller looks like this:
>
> def setup
>      p request.params
>      blogs = Blog.all
>      p @blogs
>      #should only be able to go here when there's nothing setup
>      if request.params.empty? && Master.all.empty?
>        @render_master_form = true
>      end
>      if request.params.values.length == 4 && Master.all.empty?
>        Master.create(*request.params.values)
>      end
>      p Master.find_one
>      @master = Master.find_one
>      if request.params.length == 2
>        Blog.create(*request.params.values)
>      end
>    end

Well, now to something completely different:

class FooController < Nitro::Controller
  def setup
    params = request.params #making things nicer ;)
    if Master.all.empty?
      @render_master_form  = true if params.empty?
      Master.create_with(params) if params.size == 4
    end
    @master = Master.find_one
    Blog.create_with(params) if params.size == 2
  end
end

This will also spare you the unnecessary initialize-code in the model,
as long as the form-fields have the correct name.
also, just to play save, disable the buggy mode in Nitro-params-parsing

::Nitro::Compiler.mixin_get_parameters = false

that should be all.
hope it works ;)

>
> The request.params hash even shows up in the webrick output when I
> issue the GET request, but I still get that error.
>
> TIA.
>
> Again.  This code *used* to work fine.  I looked through the
> migration document, and even took an admittedly cursory look through
> the source code, and mailing list archives to figure out how to fix
> this.
>
> Sigh.  I know everybody's trying their damnedest, and I know that
> Nitro is kind of a moving target right now, but, damn.
>
> Off to pore through Nitro code.  I'll learn all this shit somehow.
>
> Boy I'm whiny this week :)
>
>
>
>
> On 15-Nov-06, at 11:08 PM, transfire at gmail.com wrote:
>
> >
> > Matt Rose wrote:
> >> Where is this documented?
> >>
> >> I have to say, I'm not very impressed right now.  right now, it looks
> >> like all my work has to be re-written from scratch.    I've finally
> >> figured out how to get my app to start, and the console is great to
> >> work with, but I still can't get past the starting gate.
> >
> > I understand the feeling. It can be frustrating. And Nitro's been
> > going
> > through a lot of changes over the last year. But thankfully with this
> > and the next release that looks to finally settle down.
> >
> >> I have two classes.  Master is just a one-off table that holds some
> >> meta-information.  It has no relations to any other table.  But while
> >> I can use other models, I can't use this one.
> >>
> >> here's the class.
> >>
> >> class Master
> >>    attr_accessor :title
> >>    attr_accessor :description
> >>    attr_accessor :user
> >>    attr_accessor :pass
> >>    def initialize(title,desc,user,pass)
> >>      @title, at description, at user, at pass = title,desc,user,pass
> >>    end
> >>    def to_s
> >>      @title
> >>    end
> >> end
> >>
> >> class Blog
> >>      attr_accessor :title, String
> >>      attr_accessor :description, String
> >>      has_many :users, User
> >>      has_many :articles, Article
> >>      def initialize(title,description)
> >>        @title, at description = title,description
> >>      end
> >>      def to_s
> >>        @title
> >>      end
> >> end
> >>
> >> and here's the output.
> >>
> >>
> >>>> matt-roses-computer:~/ruby/start mattrose$ nitro console
> >> INFO: Og uses the Sqlite store.
> >> /usr/local/lib/ruby/1.8/logger.rb:525:in `initialize':Errno::ENOENT:
> >> No such file or directory - log/app.log
> >>>> Blog.all
> >> =>
> >>>> Master.all
> >> NoMethodError: undefined method `all' for Master:Class
> >>          from (irb):2
> >>          from :0
> >
> > I'm thinking Master is not getting "enchanted" by Og. Try adding the
> > class types:
> >
> >  class Master
> >    attr_accessor :title, String
> >     attr_accessor :description, String
> >     attr_accessor :user, String
> >     attr_accessor :pass, String
> >     def initialize(title,desc,user,pass)
> >       @title, at description, at user, at pass = title,desc,user,pass
> >     end
> >     def to_s
> >       @title
> >     end
> >  end
> >
> > And see how that effects it.
> >
> > T.
> >
> > _______________________________________________
> > Nitro-general mailing list
> > Nitro-general at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/nitro-general
>
> _______________________________________________
> Nitro-general mailing list
> Nitro-general at rubyforge.org
> http://rubyforge.org/mailman/listinfo/nitro-general
>


More information about the Nitro-general mailing list