I get my data from a database that I have access to that is updated at different points during the day. As far as having a custom validation method, I have that. Here's a, hopefully, more descriptive example of what is going on.
I have my Rails app, and I import records into that database on a daily basis from a database I have no control over. During importing of those records some pass my validations and some do not. I have some methods in place that will attempt to correct the column's data that is failing my validation, but sometimes they can't be corrected unless they have a user manually look into it and correct that data. I'm attempting to come up with a solution that allows me to get a list of those records that failed validation to allow a user to use my app to change the problem information and then attempt to save the record to the database. On Tuesday, October 13, 2015 at 5:37:27 PM UTC-4, mode-x wrote: > > You don't need to create another table also. You just need a custom > validation method that handles the checking of the imported data. And in a > before_save this can be implemented. Also If there is an error send a > notification to the owner of the record via email or when next the user > tries to access the application redirect the user to make corrections > before they proceed. *Scenario 1 *is seem good but don't play with > invalid data in your database. > > On Tue, Oct 13, 2015 at 10:22 PM, Emmanuel Abia <abia...@gmail.com > <javascript:>> wrote: > >> Avoid BY ALL MEANS any procedure that might complicate maintenance for >> you both short term and long term. >> I would advice you that you reconsider the approach. Rails has good >> validation methods that will make your programming life sweet and fun. What >> you are doing doesn't seem like fun to me. With Rails you can make tables >> to validated each other also perform custom validations etc. However when >> you say import are you importing records from an old built data-source? >> >> On Tue, Oct 13, 2015 at 9:55 PM, David McDonald <dave...@gmail.com >> <javascript:>> wrote: >> >>> Yes, I agree I just didn't want to have to create an additional model >>> for each of these models I would be importing and everything that would go >>> with that. I think what would likely work is I can create a table in >>> between my application table and the table I'm importing data from. On >>> that table I could add a column that I can note records that are invalid. >>> Then I can create a new action on my controller that reads those to a view >>> in which I can them send them to the model's _form.html.erb for the user to >>> correct and attempt to save. >>> >>> On Tuesday, October 13, 2015 at 4:46:17 PM UTC-4, mode-x wrote: >>>> >>>> Generally speaking i think you should NOT just allow invalid records AT >>>> ALL. For the record to be saved the user MUST ENSURE that the relevant >>>> information are valid. >>>> >>>> On Tue, Oct 13, 2015 at 9:30 PM, David McDonald <dave...@gmail.com> >>>> wrote: >>>> >>>>> I'm currently trying to setup daily processes that will import >>>>> information into my database. I have many records that fail validations, >>>>> and for the most part I have methods that attempt to auto-correct them >>>>> and >>>>> re-save, but there are some more complex scenarios that require a user to >>>>> correct some information before they're valid. I'm trying to come up >>>>> with >>>>> a good way in which I can set this up and I've come up with two methods, >>>>> but I'm not sure which I should really go with... >>>>> >>>>> *Scenario 1:* >>>>> >>>>> I figure I could import into my models like I normally do, and when >>>>> they don't pass validations then I will go ahead and save them to the >>>>> database anyways and then flag them with a boolean column as "invalid". >>>>> Then I'll setup an action and view to allow the user to see and correct >>>>> all >>>>> the records that have been flagged. >>>>> >>>>> *Pros:* The pro to this method is I don't have to create various new >>>>> models/tables for each model that I'm importing into for temporary >>>>> storage. >>>>> *Cons:* I'm still storing bad data in the table, and also would have >>>>> to alter many queries to filter out invalid records based on the boolean >>>>> column I would add to the model. >>>>> >>>>> *Scenario 2:* >>>>> >>>>> I create new models that mimic the model that I want to import the >>>>> records into... but then I'm adding alot of logic that is shared between >>>>> the two -- not to mention I have a lot of additional files and code. >>>>> However, this method wouldn't have me storing invalid data in my tables. >>>>> >>>>> >>>>> Thoughts? >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Ruby on Rails: Talk" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to rubyonrails-ta...@googlegroups.com. >>>>> To post to this group, send email to rubyonra...@googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/rubyonrails-talk/41a66ff1-2a65-45cc-b6bb-09f7aa57bfa4%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/rubyonrails-talk/41a66ff1-2a65-45cc-b6bb-09f7aa57bfa4%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Talk" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to rubyonrails-ta...@googlegroups.com <javascript:>. >>> To post to this group, send email to rubyonra...@googlegroups.com >>> <javascript:>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/rubyonrails-talk/b69a71a6-1e81-4d11-b8be-3c146fd7e550%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/rubyonrails-talk/b69a71a6-1e81-4d11-b8be-3c146fd7e550%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/fe10465e-504e-47d2-a77a-90c456aacdbf%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.