In my discussion board I have a Post class. There are two special functions, which I want to know where is the best place to put them.
First, I have an author field, and the user input will be tripcoded. For example name#tripcode becomes name◆3GqYIJ3Obs (Wikipedia). I currently does it in before_save in the model, but I am wondering if this should go to the controller.
Second, I have a hashed_ip field, which basically pass the user ip with md5 and encryption. I am still working on it, but the act of setting params[:hashed_ip] with a plain ip for the model to process seems semantically wrong, but at the same time it makes the code cleaner.
If I am using other languages, I’d simply have a constructor which will do the handle this conversion, which will be semantically better and cleaner at the same time.
I am not sure if I can obtain the IP within the model directly.
Thanks
Generally your controller should be as lean as possible and the logic for preparing the data, specially in this case, does belong in the model.
Regarding your second question, you cannot directly access the IP address from the model, that data is accesible only through the controller. Of course you could create a module/class that extended from Rack/ActionController to get that data but it’s just not worth it in your case.