How do you catch staryu in Pokemon Ruby?

Catch it at Lilycove City using a Super rod.

To get a super rod:

Fly to Mossdeep City and follow the path to the right. You will go up one set of stairs and see a white rock. Go left and up and you will see a house. Talk to the man inside and he will give you the rod. -PF