Forum: Ruby on Rails Problem with Custom Form Builder

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
776642d5a8292d30e9fca77b3ec3ea50?d=identicon&s=25 Saty Nos (satynos)
on 2009-05-30 20:28
I created my custom form builder (which inherits rails built-in form
builder) name spaced under my app module. I also assigned this form
builder to be the default action view form builder in the
environment.rb. When I am starting the server, rails is throwing
different errors some times saying unexpected kDEF expecting "<" or "\n"
or ";" or some times saying unxpected $end expecting "<" or "\n" or ";"

Following is the implementation of my code.

lib/my_app.rb
module MyApp
VERSION = 1
end

lib/my_app/form_builder.rb
require 'my_app'
module MyApp
class FormBuilder < ActionView::Helpers::FormBuilder
include MyApp::FormHelper
end #end of class
end #end of module

lib/my_app/form_helper.rb
require 'my_app'
module MyApp
module FormHelper < ActionView::Helpers::FormHelper
end #end of module FormHelper
end #end of module MyApp

and at the end of environment.rb (after initializer)
ActionView::Base.default_form_builder = MyApp::FormBuilder


Why is Rails not accepting my FormBuilder when I nest it under MyApp
module?

Btw: If I declare the FormBuilder as a standalone class, its working.

Thanks in advance.
-Satynos
776642d5a8292d30e9fca77b3ec3ea50?d=identicon&s=25 Saty Nos (satynos)
on 2009-05-30 21:42
Any help is much appreciated. This insight will help me not just for
subclassing built in form builder, but also to get a grasp of what is
allowe and what is not allowed in Rails parlance.

-Satynos
A91bd6cef23eb3516245a092e196c4da?d=identicon&s=25 Maurício Linhares (mauricio)
on 2009-05-30 23:56
(Received via mailing list)
You're making a module inherit from a class and this is wrong.

Here's an example of building a custom form builder ->
http://onrails.org/articles/2008/06/13/advanced-ra...

-
Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)



On Sat, May 30, 2009 at 4:42 PM, Saty Nos
776642d5a8292d30e9fca77b3ec3ea50?d=identicon&s=25 Saty Nos (satynos)
on 2009-05-31 02:59
Mauricio:

Thanks for the reponse. I didn't quite get what you mean by I am making
a module inherit from a class.

MyAPP - is top level module
MyApp::FormBuilder - is class within my module MyApp and inherits from
builtin rails FormBuilder class
MyApp::FormHelper - is module within my module MyApp.

I don't see where my class is being inherited from module.

thanks in advance.
-Satynos

Maurício Linhares wrote:
> You're making a module inherit from a class and this is wrong.
>
> Here's an example of building a custom form builder ->
> http://onrails.org/articles/2008/06/13/advanced-ra...
>
> -
> Maur�cio Linhares
> http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
> (en)
>
>
>
> On Sat, May 30, 2009 at 4:42 PM, Saty Nos
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-05-31 03:41
(Received via mailing list)
On May 31, 1:59 am, Saty Nos <rails-mailing-l...@andreas-s.net> wrote:
> I don't see where my class is being inherited from module.
>
You've written

module FormHelper < ActionView::Helpers::FormHelper
end

which doesn't make any sense - modules can't inherit from anything.

Fre
776642d5a8292d30e9fca77b3ec3ea50?d=identicon&s=25 Saty Nos (satynos)
on 2009-05-31 05:36
Fre:

That was a typo. In my actual implementation FormHelper is a module and
it doesn't inherit the builtin FormHelper, but includes it. So there was
no problem. The problem I was having is with the FormBuilder itself. I
beleive there was other code files that were creating the problem. Once
I create a new rails app from scratch, everything works fine.

Thanks for all the feedback.
-Satynos

Frederick Cheung wrote:
> On May 31, 1:59�am, Saty Nos <rails-mailing-l...@andreas-s.net> wrote:
>> I don't see where my class is being inherited from module.
>>
> You've written
>
> module FormHelper < ActionView::Helpers::FormHelper
> end
>
> which doesn't make any sense - modules can't inherit from anything.
>
> Fre
This topic is locked and can not be replied to.