Rails Console Challenge
Can you create a very simple version of the Rails Console? This challenge is similar to the program built in Ruby for Rails, but it just involves building a console (there's no controller involved).
You should create a class Post
to run the program. The input will consist of commands for your program to execute on the class Post
.
You will be given input on Standard Input, which your program needs to read in. Each line of input will contain a command for your program to perform on the class Post
. Here are the three possible actions that will come in as input, along with the action your program should take:
Post.create(content)
- Creates a post with given content.Post.find(id)
- Returns a post with a given id.Post.last
- Returns the last-created post.
When a post is printed (e.g. with puts
), it should just prints its content. The program should quit when given the input quit
.
ID's - The ID for a post should be assigned in order of when the post is created. The first post created should have an ID of 1, the second an ID of 2, etc.
Sample Input/Output
sample input | sample output | action taken |
---|---|---|
Post.create("hello") |
Post created |
(Creates and saves post.) |
puts Post.find(1) |
hello |
Returns first post (i.e. with ID of 1) and prints its content. |
puts Post.last |
hello |
Returns last created post and prints its content. |
Challenge
Create a simple Rails console as specified.
Please sign in or sign up to submit answers.
Alternatively, you can try out Learneroo before signing up.
Comments
Jacob Kopczynski
Sep 8, 1:42 PMWhat are we assumed to have available? If there's a Rails project, the console already exists and using get and eval is unnecessary. If not, are we supposed to re-implement all of ActiveRecord
for database interface? And if we're not using a database interface, nor a webpage, nor an MVC structure, in what sense is this Rails?
Learneroo
Sep 8, 1:48 PMYou just need to handle the input and output described. This isn't really Rails; the idea is to build a simple program inspired by the Rails console. The actual contest challenges ask to build some additional functionality.