hello: I have built a project with Instant Rails.Now only a database and a scaffold based on a product model have finished.But when i inputted "../admin/list" in my browser,i found my chinese characters cound not display normally.Then i made five steps: 1 ajusting encoding in my browser menu 2 in "C:\InstantRails\conf_files\my.ini"directory,making sure "my.ini" file containg "[mysqld] default-character-set=utf8 [client] default-character-set=utf8" setting. 3 adding "encoding: utf8" in my "config/database.yml" file 4 making all the ".rtml"and".rb" files saved in "utf8" way 5 deleting my database and rebuilding the database When i made my "three" migration using "rake db:migrate",an error displayed in my console window saying "001_create_products.rb:14:syntax error, unexpected kEND,expecting $end". How do i manage this problem? More important,i want to know how can i make my app to display chinese correctly. thank you! -- 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-/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 -~----------~----~----~----~------~----~------~--~---
Guo Yangguang wrote:> hello: > I have built a project with Instant Rails.Now only a database and a > scaffold based on a product model have finished.But when i inputted > "../admin/list" in my browser,i found my chinese characters cound not > display normally.Then i made five steps: > 1 ajusting encoding in my browser menu > 2 in "C:\InstantRails\conf_files\my.ini"directory,making sure > "my.ini" file containg "[mysqld] default-character-set=utf8 > [client] default-character-set=utf8" setting. > 3 adding "encoding: utf8" in my "config/database.yml" file > 4 making all the ".rtml"and".rb" files saved in "utf8" way > 5 deleting my database and rebuilding the database > When i made my "three" migration using "rake db:migrate",an error > displayed in my console window saying "001_create_products.rb:14:syntax > error, unexpected kEND,expecting $end". > How do i manage this problem? > More important,i want to know how can i make my app to display > chinese correctly. > thank you!Like the error says you have a syntax error in your 001_create_products.rb migration. If you want us to help you find it you''ll need to show it to us. As for displaying Chinese characters you are almost there. You''ll probably need something like this in the <head> section of your pages: <meta http-equiv="content-type" content="text/html; charset=utf-8" /> Other variations on the above described here: http://www.w3.org/International/O-charset -- Michael Wang --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Ok,the following are all the codes in the 001_create_products.rb. class CreateProducts < ActiveRecord::Migration def self.up create_table :products do |t| t.column(:title, :string) t.column(:description,:text) t.column(:image_url,:string) t.column(:stock,:integer) end end def self.down drop_table :products end end Michael Wang wrote:> Guo Yangguang wrote: >> 4 making all the ".rtml"and".rb" files saved in "utf8" way >> 5 deleting my database and rebuilding the database >> When i made my "three" migration using "rake db:migrate",an error >> displayed in my console window saying "001_create_products.rb:14:syntax >> error, unexpected kEND,expecting $end". >> How do i manage this problem? >> More important,i want to know how can i make my app to display >> chinese correctly. >> thank you! > > Like the error says you have a syntax error in your > 001_create_products.rb migration. If you want us to help you find it > you''ll need to show it to us. > > As for displaying Chinese characters you are almost there. You''ll > probably need something like this in the <head> section of your pages: > > <meta http-equiv="content-type" content="text/html; charset=utf-8" /> > > Other variations on the above described here: > > http://www.w3.org/International/O-charset > > > -- > Michael Wang-- 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-/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 -~----------~----~----~----~------~----~------~--~---
Guo Yangguang wrote:> Ok,the following are all the codes in the 001_create_products.rb. > > class CreateProducts < ActiveRecord::Migration > def self.up > create_table :products do |t| > t.column(:title, :string) > t.column(:description,:text) > t.column(:image_url,:string) > t.column(:stock,:integer) > end > end > > def self.down > drop_table :products > end > endThat looks okay. It ran on my setup, copy and pasting from above. I would suggest typing it over in a new file that you create with "script/generate migration". If you are running a double-byte or other non-Latin input scheme there may be something odd embedded in the file. -- Michael Wang --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Thank you!I have done it according yours advice.But do i need to modify the following to make chinese diplay? 2 making sure"my.ini" file containg "[mysqld] default-character-set=utf8 [client] default-character-set=utf8" setting. 3 adding "encoding: utf8" in my "config/database.yml" file Michael Wang wrote:> Guo Yangguang wrote: >> end >> >> def self.down >> drop_table :products >> end >> end > > That looks okay. It ran on my setup, copy and pasting from above. > > I would suggest typing it over in a new file that you create with > "script/generate migration". If you are running a double-byte or other > non-Latin input scheme there may be something odd embedded in the file. > > > -- > Michael Wang-- 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-/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 -~----------~----~----~----~------~----~------~--~---
Guo Yangguang wrote:> Thank you!I have done it according yours advice.But do i need to modify > the following to make chinese diplay? > 2 making sure"my.ini" file containg "[mysqld] > default-character-set=utf8 [client] default-character-set=utf8" setting. > 3 adding "encoding: utf8" in my > "config/database.yml" fileYou do need the "encoding: utf8" line in your database.yml file. For MySQL there''s a bunch of different ways to set the database or table to use utf8. I don''t typically use Windows with MySQL so I''ve never configured a my.ini file but you should be able to confirm the character set within the mysql command line tool with "show create database <database_name>". E.g. for my Rails app that can display utf8 characters I get: +---------------------+-----------------------------------------------------------------------------------------------+ | Database | Create Database | +---------------------+-----------------------------------------------------------------------------------------------+ | topsites_production | CREATE DATABASE `topsites_production` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */ | +---------------------+-----------------------------------------------------------------------------------------------+ -- Michael Wang --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Thank you!When i use command "show create database <database_name>",the console window show that database''s coding is "latin1".Later I added line "encoding: utf8"in my database.yml,remigrated my three migrations,then console window said: D:\ruby\cashmere>rake db:migrate VERSION=0 (in D:/ruby/cashmere) == AddTestData: reverting ====================================================== AddTestData: reverted (0.1400s) =========================================== == AddPrice: reverting =======================================================-- remove_column(:products, :price) -> 0.1870s == AddPrice: reverted (0.1870s) ============================================== == CreateProducts: reverting =================================================-- drop_table(:products) -> 0.0470s == CreateProducts: reverted (0.0470s) ======================================== D:\ruby\cashmere>rake db:migrate (in D:/ruby/cashmere) == CreateProducts: migrating =================================================-- create_table(:products) -> 0.0930s == CreateProducts: migrated (0.0930s) ======================================== == AddPrice: migrating =======================================================-- add_column(:products, :price, :integer, {:default=>0}) -> 0.1250s == AddPrice: migrated (0.1250s) ============================================== == AddTestData: migrating ====================================================rake aborted! Mysql::Error: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_g eneral_ci,COERCIBLE) for operation ''='': SELECT * FROM products WHERE (products.t itle = ''白领男'') LIMIT 1 This shows mysql setting is not right.How can i manage it?I am a fresher to mysql. Michael Wang wrote:> Guo Yangguang wrote: >> Thank you!I have done it according yours advice.But do i need to modify >> the following to make chinese diplay? >> 2 making sure"my.ini" file containg "[mysqld] >> default-character-set=utf8 [client] default-character-set=utf8" setting. >> 3 adding "encoding: utf8" in my >> "config/database.yml" file > > You do need the "encoding: utf8" line in your database.yml file. > > For MySQL there''s a bunch of different ways to set the database or table > to use utf8. I don''t typically use Windows with MySQL so I''ve never > configured a my.ini file but you should be able to confirm the character > set within the mysql command line tool with "show create database > <database_name>". > > E.g. for my Rails app that can display utf8 characters I get: > > +---------------------+-----------------------------------------------------------------------------------------------+ > | Database | Create Database > | > +---------------------+-----------------------------------------------------------------------------------------------+ > | topsites_production | CREATE DATABASE `topsites_production` /*!40100 > DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */ | > +---------------------+-----------------------------------------------------------------------------------------------+ > > > -- > Michael Wang-- 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-/JYPxA39Uh5TLH3MbocFFw@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 -~----------~----~----~----~------~----~------~--~---
Guo Yangguang wrote:> rake aborted! > Mysql::Error: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and > (utf8_g > eneral_ci,COERCIBLE) for operation ''='': SELECT * FROM products WHERE > (products.t > itle = ''白领男'') LIMIT 1 > > > > This shows mysql setting is not right.How can i manage it?I am a > fresher to mysql.I do it like this inside the MySQL command line tool: create database cashmere_development character set utf8 collate utf8_bin; create database cashmere_test character set utf8 collate utf8_bin; create database cashmere_production character set utf8 collate utf8_bin; -- Michael Wang --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thank you!But i still have to bother you! I follow these steps to manage the chinese display. 1: use mysql command "create database cashmere_development default character set utf8 collate utf8_bin;" to create my database that support utf8.This step succeeds. 2: add "encoding: utf8" to the cash_development section of the dababase.yml file. 3: create model and migration using rails command"ruby script/generate model product",then modify the 001_create_products.rb file like this: class CreateProducts < ActiveRecord::Migration def self.up create_table :products do |t| t.column :title,:string t.column :description,:text t.column :image_url,:string t.column :stock,:integer end end def self.down drop_table :products end end at last,migrate it using"rake db:migrate".Here,i got an error saying: D:\ruby\cashmere>rake db:migrate (in D:/ruby/cashmere) == CreateProducts: migrating =================================================-- create_table(:products) rake aborted! Mysql::Error: Can''t create table ''.\cashmere_development\products.frm'' (errno: 1 21): CREATE TABLE products (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY , `title` varchar(255) DEFAULT NULL, `description` text DEFAULT NULL, `image_url ` varchar(255) DEFAULT NULL, `stock` int(11) DEFAULT NULL) ENGINE=InnoDB How do i manage this problem? Is that because utf8 can not be used for "stock" column?Should i define diffrent character set for diffrent column?If so,how do i set it in rail''migration file like 001_create_products.rb? Thank you! Michael Wang wrote:> Guo Yangguang wrote: >> fresher to mysql. > I do it like this inside the MySQL command line tool: > > create database cashmere_development character set utf8 collate > utf8_bin; > create database cashmere_test character set utf8 collate utf8_bin; > create database cashmere_production character set utf8 collate utf8_bin; > > > -- > Michael Wang-- 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-/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 -~----------~----~----~----~------~----~------~--~---
Guo Yangguang wrote:> Thank you!But i still have to bother you! > I follow these steps to manage the chinese display. > 1: use mysql command "create database cashmere_development default > character set utf8 collate utf8_bin;" to create my database that support > utf8.This step succeeds. > 2: add "encoding: utf8" to the cash_development section of the > dababase.yml file. > 3: create model and migration using rails command"ruby script/generate > model product",then modify the 001_create_products.rb file like this: > class CreateProducts < ActiveRecord::Migration > def self.up > create_table :products do |t| > t.column :title,:string > t.column :description,:text > t.column :image_url,:string > t.column :stock,:integer > end > end > > def self.down > drop_table :products > end > end > > at last,migrate it using"rake db:migrate".Here,i got an error saying: > > D:\ruby\cashmere>rake db:migrate > (in D:/ruby/cashmere) > == CreateProducts: migrating > =================================================> -- create_table(:products) > rake aborted! > Mysql::Error: Can''t create table ''.\cashmere_development\products.frm'' > (errno: 1 > 21): CREATE TABLE products (`id` int(11) DEFAULT NULL auto_increment > PRIMARY KEY > , `title` varchar(255) DEFAULT NULL, `description` text DEFAULT NULL, > `image_url > ` varchar(255) DEFAULT NULL, `stock` int(11) DEFAULT NULL) ENGINE=InnoDB > > > How do i manage this problem? Is that because utf8 can not be used > for "stock" column?Should i define diffrent character set for diffrent > column?If so,how do i set it in rail''migration file like > 001_create_products.rb? > Thank you!Something is messed up in your MySQL database. Google on "errno 121" for more info. Here''s an example of what might be the problem: http://www.jsw4.net/info/listserv_archives/mysql/03-wk07/msg00159.html -- Michael Wang --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Thank you!I think i have solved this problem by dropping database in command line instead of deleting it manually.My page now can display chinese,but i found a unneccesary line at top of my page saying:ﻄ1?7!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> .Although this is not an important flaw,I don''t know why? It is harmful to my page appearance. Thank you ! Michael Wang wrote:> Guo Yangguang wrote: >> def self.up >> end >> Mysql::Error: Can''t create table ''.\cashmere_development\products.frm'' >> column?If so,how do i set it in rail''migration file like >> 001_create_products.rb? >> Thank you! > > Something is messed up in your MySQL database. Google on "errno 121" for > more info. Here''s an example of what might be the problem: > > http://www.jsw4.net/info/listserv_archives/mysql/03-wk07/msg00159.html > > > -- > Michael Wang-- 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-/JYPxA39Uh5TLH3MbocFFw@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 -~----------~----~----~----~------~----~------~--~---