Construct a Borel set on R such that it intersect every open interval with non-zero non-“full” measure

This is from problem $8$, Chapter II of Rudin's Real and Complex Analysis.

The problem asks for a Borel set $M$ on $R$, such that for any interval $I$, $M \cap I$ has measure greater than $0$ and less than $m(I)$.

I was thinking of taking the Cantor approach: taking $R$ to be the union of $[a,b]$ with $a$ and $b$ rationals, and for each $[a,b]$ we construct Cantor sets inside it. During theconstruction of each Cantor set, in order to have positive measure on it, we need to take off smaller and smaller intervals from it, namely the proportion goes to $0$. As a result, these Cantor sets are extremely "dense" on their ends. If for an interval $I$ it intersects with the Cantor set on $[a,b]$ while $b-a>>m(I)$, we shall expect the measure of intersection to be rather close to $m(I)$ and then we lose control on these cases.

Is there any way to fix this or shall I consider other approaches?

Thank you

Instead of trying to understand your approach (which sounds complicated), let me tell you how I'd do it. I guess you know how to construct a closed nowhere dense set of positive measure inside a given interval, right? Enumerate all the rational intervals in a sequence $I_1,I_2,I_3,\dots$. Now construct an infinite sequence $M_1,N_1,M_2,N_2,M_3,N_3,\dots$ of pairwise disjoint closed nowhere dense sets of positive measure, with $M_k,N_k\subset I_k$.  The $F_\sigma$-set $M=M_1\cup M_2\cup M_3\cup\cdots$ does what you want. 
 Note that, at each step of the construction, you have constructed a finite number of closed nowhere dense sets, whose union is therefore a closed nowhere dense set. Hence the interval $I_k$ you are currently working in will contain a subinterval which is disjoint from that nowhere dense set. Construct the next closed nowhere dense set inside that subinterval.
 Any interval $I$ contains some rational interval $I_k$. Since $N_k\subseteq I_k\subseteq I$ and $N_k\cap M=\emptyset$, it follows that $M\cap I\subseteq I\setminus N_k$ and $m(M\cap I)\le m(I\setminus N_k)=m(I)-m(N_k)\lt m(I)$.