Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8140457
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T12:10:32+00:00 2026-06-06T12:10:32+00:00

I have a model and a column of this model represents a state .

  • 0

I have a model and a column of this model represents a state . It’s numeric value and it could be 1,2,3.

I have two concerns:

a) Based on the business logic, the state can only go from 1 to 2 and from 2 to 3. It can’t go back from higher numbers to lower number and it can’t just from 1 to 3 in one step.

b) I don’t want to expose these numbers to controllers (don’t like magical numbers flying around).

I did following

  • I created methods like stateX?, stateY?, stateZ? to allow controllers check current state.
    This helps me with concern b).

  • I created methods setStateX, setStateY, stateZ and raise in them, if a controller does unacceptable switch of state. This helps me with concern a) and b).

However, I feel that’s more Java/C++ way (which is my background) – 6 methods to do one thing.

Is there any better way to accomplish this in RoR?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-06T12:10:33+00:00Added an answer on June 6, 2026 at 12:10 pm

    Not sure if this is still the best way to do it (my Rails is a little rusty) but there is a gem called acts_as_state_machine which I think will do exactly what you want.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have 3 tables, one which represents a supertype, with an ID column. Two
I have this column model { name: 'CostShare', index: 'CostShare', width: 50, formatter: 'number',
I'm using ExtJs 3.4 and I have a TreeGrid (Ext.ux.tree.TreeGrid) with a column model.
I have a books model with a date type column named publish_date. On my
I have a Donation.rb model with an amount column that takes an integer. I
I have a devise user model with pro boolean column.I want to build a
I have a Ruby on Rails model that has a column called expiration_date .
I have code like following: switch(sort.Column) { case code: model = (sort.Direction == SortDirection.Ascending)
I have two objects, a Trip and a Place . A Trip represents a
Okay, so we have a utility here in-house that generates business-model classes from our

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.