Dear All, There are two tables one is redemption_list,columns are: id(int),item_id(char(15)),points_required the other one is redemption_location,columns are: id(int),loc_id(char(3)),item_id(char(15)). ../models/redemption_list.rb has_many :redemption_locations, :foreign_key => "item_id" def to_param item_id end ../models/redemption_location.rb belongs_to :crm_redemption_list, :foreign_key => "item_id" one redemption has many locations ,the foreign key is item_id, and now i want to list all the redemptions, ../controllers/redemption_lists_controller.rb def index @redemptions = RedemptionList.all end def show @redemption = RedemptionList.find_by_item_id(params[:id]) end at present, i can list all the redemptions,then i click the show button, there is a error "[SQL Server]The conversion of the varchar value ''1234567890123 '' overflowed an int column.: EXEC sp_executesql N''SELECT [redemption_location].* FROM [redemption_location] WHERE [crm_redemption_location].[item_id] = 4''" accturally, the item_id is "1234567890123", redemption_location_id =4, and at the same time, the URL looks like this: http://localhost:3000/redemption_lists/1234567890123%20%20, what is the meaning of 20%20%?? On the Request part, it shows {"id"=>"1234567890123 "}, i am so confused about this problem, please give me some advice,thanks very much. PS: about the parameter on URL, i followed the advice of http://railscasts.com/episodes/63-model-name-in-url, i think it is useful -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 19 January 2012 03:12, Daisy Di <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Dear All, > > There are two tables one is redemption_list,columns are: > id(int),item_id(char(15)),points_required > > the other one is redemption_location,columns are: > id(int),loc_id(char(3)),item_id(char(15)). > > ../models/redemption_list.rb > has_many :redemption_locations, :foreign_key => "item_id" > > def to_param > item_id > end > ../models/redemption_location.rb > belongs_to :crm_redemption_list, :foreign_key => "item_id"That should be belongs_to :redemption_list Also unless you have a very good reason do not use a string column as a foreign key, use an int and let rails handle it. Why have you got an item_id column in redemption_list?> > one redemption has many locations ,the foreign key is item_id, and now i > want to list all the redemptions, > > ../controllers/redemption_lists_controller.rb > def index > @redemptions = RedemptionList.all > end > > def show > @redemption = RedemptionList.find_by_item_id(params[:id]) > end > > at present, i can list all the redemptions,then i click the show button, > there is a error "[SQL Server]The conversion of the varchar value > ''1234567890123 '' overflowed an int column.: EXEC sp_executesql N''SELECT > [redemption_location].* FROM [redemption_location] WHERE > [crm_redemption_location].[item_id] = 4''" > accturally, the item_id is "1234567890123", redemption_location_id =4, > and at the same time, the URL looks like this: > http://localhost:3000/redemption_lists/1234567890123%20%20, what is the > meaning of 20%20%?? On the Request part, it shows {"id"=>"1234567890123 > "}, i am so confused about this problem, please give me some > advice,thanks very much.I am pretty sure the fundamental problem stems from the fact that item_id is a string instead of an int. Since it must match the id column of redemption_list this does not make sense. Colin -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.