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 <abiae...@gmail.com> 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 <daveo...@gmail.com>
> 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-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/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/CAHewxcHRcdb9Q4e8AKGvO4xeL_mnAmhK_eZYTSkny6ssx22JBg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to