Most children have no concept of what is good for them; in fact with out an incentive towards good health, most kids could care less. All that kids want is what they like, and if you tell them they don't like something, as the above scenario demonstrates, you set them up to fail.
We create; we mold their behaviour with our demeanour and what we model for them. If you wish for a child to do the right thing, model the behaviour, give them no other option but to do the right thing.
There should be as many different techniques to raise children, as there are different types of children, because each child is as different as a fingerprint. Do not believe that anyone has the perfect solution and thus what truly works with all children.
The old school phrase 'Spare the rod, spoil the child', I believe, is often taken out of context; many don't seem to have a clue. It has been observed that many have the misconception that children are born naive, and it's their environment which turns their hearts rebellious.
Therefore, their further development must be done by the loving exorcism of one rogue spirit at a time.
If children are not taught to love themselves through self-respect, they will not learn to respect the views of those who disagree with them, thus will not learn to respect God, thus recreating more shame and uncertainty for themselves. Children must be taught to love, even for those whose views they do not respect.
Some children appear to learn by redirecting them towards more appropriate behaviour. However, others only appear to understand a consequence for inappropriate behaviour.