[Rails] Re: Wrong number of arguments (0 for 1) in callback method

2009-11-15 Thread Kalpesh Patel

Hi Matt,
Actually I am trying to connect to already existing DB where mentioned
table is readily available. I just need to read it all the time or
occasionally write it but I do not create it from my app. The primary
key of the table is varchar. I can do nothing about that and if i do
not declare it into my model, it will assume a primary key 'id' in the
table. Is there any better way here?

PS: i cannot see your posting on ruby-forum. Will it take LOTS of time
for that to appear on the site or something else?

-Kalpesh

On Sat, Nov 14, 2009 at 10:54 PM, Matt Jones al2o...@gmail.com wrote:

 Somewhat unrelated, but if you're creating a new, simple Rails app,
 why are you tangling with set_table_name and a noninteger primary key?
 Working against the Rails conventions will cause no end of trouble,
 especially if you're just starting out...

 --Matt Jones

 On Nov 13, 4:00 am, Kalpesh1 Patel rails-mailing-l...@andreas-s.net
 wrote:
 I was creating this simple rail application. my controller method looks
 like this:
 ---
 def create()
 @simple = Simple.new(params[:simple]) ##params coming from view
 @simple.save
 end
 ---

 And my model class Simple as below:

 ---
 class Simple  ActiveRecord::Base
   set_table_name name_desc_table
   set_primary_key name

   before_create :init_name

   private
   def init_name(cname)
 self.name = cname
   end
 end
 ---

 When I run this in browser, it throws error Wrong number of arguments
 (0 for 1). Obviously, my method init_name expects one parameter and
 it doesn't find any while called(by controller??). Basically I want to
 send this 'cname' variable from controller to model. Can anybody tell me
 what can I do in controller method so that 'cname' variable is passed
 when callback method is called?

 Thanks,
 -Kalpesh
 --
 Posted viahttp://www.ruby-forum.com/.
 




-- 
Why so serious?

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Ruby 
on Rails: Talk group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Wrong number of arguments (0 for 1) in callback method

2009-11-14 Thread Matt Jones

Somewhat unrelated, but if you're creating a new, simple Rails app,
why are you tangling with set_table_name and a noninteger primary key?
Working against the Rails conventions will cause no end of trouble,
especially if you're just starting out...

--Matt Jones

On Nov 13, 4:00 am, Kalpesh1 Patel rails-mailing-l...@andreas-s.net
wrote:
 I was creating this simple rail application. my controller method looks
 like this:
 ---
 def create()
     @simple = Simple.new(params[:simple]) ##params coming from view
     @simple.save
 end
 ---

 And my model class Simple as below:

 ---
 class Simple  ActiveRecord::Base
   set_table_name name_desc_table
   set_primary_key name

   before_create :init_name

   private
   def init_name(cname)
     self.name = cname
   end
 end
 ---

 When I run this in browser, it throws error Wrong number of arguments
 (0 for 1). Obviously, my method init_name expects one parameter and
 it doesn't find any while called(by controller??). Basically I want to
 send this 'cname' variable from controller to model. Can anybody tell me
 what can I do in controller method so that 'cname' variable is passed
 when callback method is called?

 Thanks,
 -Kalpesh
 --
 Posted viahttp://www.ruby-forum.com/.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Ruby 
on Rails: Talk group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Wrong number of arguments (0 for 1) in callback method

2009-11-13 Thread Frederick Cheung



On Nov 13, 9:00 am, Kalpesh1 Patel rails-mailing-l...@andreas-s.net
wrote:

 When I run this in browser, it throws error Wrong number of arguments
 (0 for 1). Obviously, my method init_name expects one parameter and
 it doesn't find any while called(by controller??). Basically I want to
 send this 'cname' variable from controller to model. Can anybody tell me
 what can I do in controller method so that 'cname' variable is passed
 when callback method is called?

Callbacks like before_create can't take any arguments

Fred

 Thanks,
 -Kalpesh
 --
 Posted viahttp://www.ruby-forum.com/.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Ruby 
on Rails: Talk group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Wrong number of arguments (0 for 1) in callback method

2009-11-13 Thread Kalpesh1 Patel

Frederick Cheung wrote:
 On Nov 13, 9:00�am, Kalpesh1 Patel rails-mailing-l...@andreas-s.net
 wrote:
 
 When I run this in browser, it throws error Wrong number of arguments
 (0 for 1). Obviously, my method init_name expects one parameter and
 it doesn't find any while called(by controller??). Basically I want to
 send this 'cname' variable from controller to model. Can anybody tell me
 what can I do in controller method so that 'cname' variable is passed
 when callback method is called?
 
 Callbacks like before_create can't take any arguments
 
 Fred

So isn't there any way I can pass some value from controller to model?
-- 
Posted via http://www.ruby-forum.com/.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Ruby 
on Rails: Talk group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Wrong number of arguments (0 for 1) in callback method

2009-11-13 Thread Leonardo Mateo

On Fri, Nov 13, 2009 at 10:39 AM, Kalpesh1 Patel
rails-mailing-l...@andreas-s.net wrote:

 Frederick Cheung wrote:
 On Nov 13, 9:00�am, Kalpesh1 Patel rails-mailing-l...@andreas-s.net
 wrote:

 When I run this in browser, it throws error Wrong number of arguments
 (0 for 1). Obviously, my method init_name expects one parameter and
 it doesn't find any while called(by controller??). Basically I want to
 send this 'cname' variable from controller to model. Can anybody tell me
 what can I do in controller method so that 'cname' variable is passed
 when callback method is called?

 Callbacks like before_create can't take any arguments

 Fred

 So isn't there any way I can pass some value from controller to model?
What do you mean? Of course you can pass values, in fact, you're
passing a value there.
I don't see the need of doing something like the before_create hook.
Why don't you just pass the value to the constructor? Simple.new(:name
= params[:simple])


-- 
Leonardo Mateo.
There's no place like ~

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Ruby 
on Rails: Talk group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Wrong number of arguments (0 for 1) in callback method

2009-11-13 Thread Sijo k g

Hi Kalpesh1 Patel

 So isn't there any way I can pass some value from controller to model?

You can define cname as n attr_writer in model and can set its value 
from controller like @simple.cname = 'namehere'


Sijo

-- 
Posted via http://www.ruby-forum.com/.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Ruby 
on Rails: Talk group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Wrong number of arguments (0 for 1) in callback method

2009-11-13 Thread Kalpesh1 Patel

Sijo k g wrote:
 Hi Kalpesh1 Patel
 
 So isn't there any way I can pass some value from controller to model?
 
 You can define cname as n attr_writer in model and can set its value 
 from controller like @simple.cname = 'namehere'
 
 
 Sijo

Thanks sijo! I am able to get/set it using attr_accessor now :)
-- 
Posted via http://www.ruby-forum.com/.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Ruby 
on Rails: Talk group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---



[Rails] Re: Wrong number of arguments (0 for 1) in callback method

2009-11-13 Thread Kalpesh1 Patel

Leonardo Mateo wrote:
 On Fri, Nov 13, 2009 at 10:39 AM, Kalpesh1 Patel
 rails-mailing-l...@andreas-s.net wrote:
 when callback method is called?

 Callbacks like before_create can't take any arguments

 Fred

 So isn't there any way I can pass some value from controller to model?
 What do you mean? Of course you can pass values, in fact, you're
 passing a value there.
 I don't see the need of doing something like the before_create hook.
 Why don't you just pass the value to the constructor? Simple.new(:name
 = params[:simple])
 
 
 --
 Leonardo Mateo.
 There's no place like ~

I need before_create because I want to do some preprocessing everytime i 
save my 'Simple' state in the DB. For example, authentication, logging 
or similar stuff I will perform just before 'save'(this might raise 
another question, is this right approach? but this can be a separate 
discussion). I thought of passing the value in the callback method 
itself but now I am able to do it through attr_accessor. Thanks Leo for 
the suggestion :)

-Kalpesh
-- 
Posted via http://www.ruby-forum.com/.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups Ruby 
on Rails: Talk group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~--~~~~--~~--~--~---