Hello, I am new to RoR and have several questions. 1) I have an existing DB and I want to develop an application that uses this existing DB. How do I import this DB into my application. What I mean is, I dont want to generate new models using rails, I want to use the existing DB. 2) My DB contains tables named abc_profile, abc_friends and abc_register. One profile can have many friends and one profile can have one register. What I have done is, I used the generate model script to generate the 3 models, and in the AbcProfile class, I wrote has_many :abc_friends and also wrote has_one :abc_register. In the AbcFriends class I wrote belongs_to :abc_profile, and in the AbcRegister class I also wrote belongs_to :abc_profile. Then I made a profile controller (generate controller Profile) and wrote in it @result = AbcProfile.find(:all). In the app/views/profile/index.rhtml file, I wrote <% @result.each do |res| %>, but this line is giving an error. The error is NoMethodError in Profile#index Showing *profile/index.rhtml* where line *#1* raised: You have a nil object when you didn''t expect it! You might have expected an instance of Array. The error occurred while evaluating nil.each Extracted source (around line *#1*): 1: <% @result.each do |res| %> 2: <table width="100%" border="0" cellspacing="0" cellpadding="0"> 3: <tr> 4: <td valign="top"> Please help me with this error, and also guide me if I have done anything wrong in the above mentioned code. Also tell me about the table names and about the underscore in the table names, I mean do I write has_many :abc_profile, or do I write has_many :AbcProfile. Any help will be highly appreciated Please reply to the email address harisgulzar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org -- Regards Haris Gulzar --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hello, Am Montag, 31. Dezember 2007 schrieb Haris Gulzar:> Hello, > > I am new to RoR and have several questions. > > 1) I have an existing DB and I want to develop an application that uses > this existing DB. How do I import this DB into my application. What I mean > is, I dont want to generate new models using rails, I want to use the > existing DB.If not set somewhere, models are more or less generated on the fly from your tables.> 2) My DB contains tables named abc_profile, abc_friends and abc_register. > One profile can have many friends and one profile can have one register. > What I have done is, I used the generate model script to generate the 3 > models, and in the AbcProfile class, I wrote has_many :abc_friends and also > wrote has_one :abc_register. In the AbcFriends class I wrote belongs_toIf not set elsehwere, table-names ought to be plural. Have you set this according to your needs?> :abc_profile, and in the AbcRegister class I also wrote belongs_to > :abc_profile. Then I made a profile controller (generate controller > : Profile) > > and wrote in it @result = AbcProfile.find(:all). > > In the app/views/profile/index.rhtml file, I wrote <% @result.each do |res| > %>, but this line is giving an error. The error is > > NoMethodError in Profile#indexSeems your controller''s index-Method is not found - it''s hard to say what went wrong, if you don''t show your controller completely (pastie.caboo.se is your friend)> Showing *profile/index.rhtml* where line *#1* raised: > > You have a nil object when you didn''t expect it! > You might have expected an instance of Array. > The error occurred while evaluating nil.each > > Extracted source (around line *#1*): > > 1: <% @result.each do |res| %> > 2: <table width="100%" border="0" cellspacing="0" cellpadding="0"> > 3: <tr> > 4: <td valign="top">@results is nil (in Java Terms null) ''cause it hasn''t been definied, ''cause your controller wasn''t executed. Keep smiling yanosz --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
thanx for your instant reply. Lemme send the code to you I have only one controller file named "profile_controller.rb", and it contains class ProfileController < ApplicationController @result = MhpProfile.find(:all) end I have 3 Models "mhp_friends.rb", "mhp_profile.rb", "mhp_register.rb" class MhpFriends < ActiveRecord::Base belongs_to :MhpProfile def self.table_name() "mhp_friends" end end class MhpProfile < ActiveRecord::Base has_many :MhpFriends has_one :MhpRegister def self.table_name() "mhp_profile" end end class MhpRegister < ActiveRecord::Base belongs_to :MhpProfile def self.table_name() "mhp_register" end end I hope this helps. I have only one view under app/views/profile/index.rhtml, and the first line it has is <% @result.each do |res| %> which gives an error. Please help On Dec 31, 2007 5:30 PM, Jan Luehr <rails-list-i6UgHu6VvmaWPPBFgQShfeTW4wlIGRCZ@public.gmane.org> wrote:> > Hello, > > Am Montag, 31. Dezember 2007 schrieb Haris Gulzar: > > Hello, > > > > I am new to RoR and have several questions. > > > > 1) I have an existing DB and I want to develop an application that uses > > this existing DB. How do I import this DB into my application. What I > mean > > is, I dont want to generate new models using rails, I want to use the > > existing DB. > > If not set somewhere, models are more or less generated on the fly from > your > tables. > > > 2) My DB contains tables named abc_profile, abc_friends and > abc_register. > > One profile can have many friends and one profile can have one register. > > What I have done is, I used the generate model script to generate the 3 > > models, and in the AbcProfile class, I wrote has_many :abc_friends and > also > > wrote has_one :abc_register. In the AbcFriends class I wrote belongs_to > > If not set elsehwere, table-names ought to be plural. Have you set this > according to your needs? > > > :abc_profile, and in the AbcRegister class I also wrote belongs_to > > :abc_profile. Then I made a profile controller (generate controller > > : Profile) > > > > and wrote in it @result = AbcProfile.find(:all). > > > > In the app/views/profile/index.rhtml file, I wrote <% @result.each do > |res| > > %>, but this line is giving an error. The error is > > > > NoMethodError in Profile#index > > Seems your controller''s index-Method is not found - it''s hard to say what > went > wrong, if you don''t show your controller completely (pastie.caboo.se is > your > friend) > > > Showing *profile/index.rhtml* where line *#1* raised: > > > > You have a nil object when you didn''t expect it! > > You might have expected an instance of Array. > > The error occurred while evaluating nil.each > > > > Extracted source (around line *#1*): > > > > 1: <% @result.each do |res| %> > > 2: <table width="100%" border="0" cellspacing="0" cellpadding="0"> > > 3: <tr> > > 4: <td valign="top"> > > @results is nil (in Java Terms null) ''cause it hasn''t been definied, > ''cause > your controller wasn''t executed. > > Keep smiling > yanosz > > > >-- Regards Haris Gulzar --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hello, Am Montag, 31. Dezember 2007 schrieb Haris Gulzar:> thanx for your instant reply. Lemme send the code to you > > I have only one controller file named "profile_controller.rb", and it > contains> class ProfileController < ApplicationController > @result = MhpProfile.find(:all) > endah, here we go: controllers need methods for the actions they provide: Here: class ProfileController < ApplicationController def index @result = MhpProfile.find(:all) end end I guess you should get yourself some kind of docs (books, howtos, etc) Keep smiling yanosz --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Mon, 31 Dec 2007 16:42:53 +0500, Haris Gulzar wrote:> 1) I have an existing DB and I want to develop an application that uses > this existing DB. How do I import this DB into my application. What I > mean is, I dont want to generate new models using rails, I want to use > the existing DB.here''s an example db which has been created by RoR: thufir@arrakis ~/Desktop/strawr/db $ thufir@arrakis ~/Desktop/strawr/db $ sqlite3 development.sqlite3 SQLite version 3.4.1 Enter ".help" for instructions sqlite> .schema CREATE TABLE colors ("id" INTEGER PRIMARY KEY NOT NULL, "feed_id" integer DEFAULT NULL, "tag_id" integer DEFAULT NULL, "color" varchar(255) DEFAULT NULL); CREATE TABLE feeds ("id" INTEGER PRIMARY KEY NOT NULL, "feed" varchar (255) DEFAULT NULL); CREATE TABLE schema_info (version integer); CREATE TABLE tags ("id" INTEGER PRIMARY KEY NOT NULL, "tag" varchar(255) DEFAULT NULL); sqlite> .quit thufir@arrakis ~/Desktop/strawr/db $ What does your schema look like? Probably you need to look into a getting RoR to work with a legacy db, which is a hassle (at least for me). I don''t advise it until you''ve written at least one RoR app from the ground up. -Thufir --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thanx a lot Jan and Thufir for your help. But now Im getting another error (and a weird one too). The page doesnt display anything, but the server console says ERROR Errno::ENOBUFS: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. Any insight into this error ?? On Dec 31, 2007 9:42 PM, Thufir <hawat.thufir-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > On Mon, 31 Dec 2007 16:42:53 +0500, Haris Gulzar wrote: > > > > 1) I have an existing DB and I want to develop an application that uses > > this existing DB. How do I import this DB into my application. What I > > mean is, I dont want to generate new models using rails, I want to use > > the existing DB. > > > here''s an example db which has been created by RoR: > > thufir@arrakis ~/Desktop/strawr/db $ > thufir@arrakis ~/Desktop/strawr/db $ sqlite3 development.sqlite3 > SQLite version 3.4.1 > Enter ".help" for instructions > sqlite> .schema > CREATE TABLE colors ("id" INTEGER PRIMARY KEY NOT NULL, "feed_id" integer > DEFAULT NULL, "tag_id" integer DEFAULT NULL, "color" varchar(255) DEFAULT > NULL); > CREATE TABLE feeds ("id" INTEGER PRIMARY KEY NOT NULL, "feed" varchar > (255) DEFAULT NULL); > CREATE TABLE schema_info (version integer); > CREATE TABLE tags ("id" INTEGER PRIMARY KEY NOT NULL, "tag" varchar(255) > DEFAULT NULL); > sqlite> .quit > thufir@arrakis ~/Desktop/strawr/db $ > > > > What does your schema look like? Probably you need to look into a > getting RoR to work with a legacy db, which is a hassle (at least for me). > > I don''t advise it until you''ve written at least one RoR app from the > ground up. > > -Thufir > > > > >-- Regards Haris Gulzar --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hello, Am Dienstag, 1. Januar 2008 schrieb Haris Gulzar:> Thanx a lot Jan and Thufir for your help. But now Im getting another error > (and a weird one too). The page doesnt display anything, but the server > console says > > ERROR Errno::ENOBUFS: An operation on a socket could not be performed > because the system lacked sufficient buffer space or because a queue was > full.Looks like the server has some trouble accessing your DB or processing results. Is your database queried? Did you modify config/database.yml according to your needs? Keep smiling yanosz --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---