2011-08-04 67 views
1

我目前有一個非常簡單的模型「優惠券」。我突然有興趣再添加兩個字段,「redeem_code」和「redeemed」到模型中,原因很明顯。Rails非RESTful困境?

我想讓商家根據代碼兌換優惠券。

,我能想到的只是最簡單的方法做,這將是這樣的:

def redeem 
    #renders the page 
    end 

    def redeem_post 
    redeem_code = params[:redeem_code] 
    deal = Deal.find_by_redeem_code(redeem_code) 

    if deal.nil? 
     # BUG: Somehow here you will be logged out 
     redirect_to deals_path 
    else 
     if deal.update_attribute(:redeemed, true) 
     redirect_to deals_path 
     end 
    end 
    end 

就我個人而言,軌真的不支持非寧靜接口。昨晚我試着挖形式傭工,但我沒能找到任何東西,所以我只是把togehter真實的東西快:

<form action="<%= deals_redeem_post_path %>" method="post"> 

    <table> 
    <tr> 
     <th> Code: </th> 
     <td> <input type="text" name="redeem_code" /> </td> 
    </tr> 
    <tr> 
     <th></th> 
     <td> <input type="submit" text="Submit" /> </td> 
    </tr> 
    </table> 

</form> 

我使用的設計。我現在遇到的錯誤是當我的用戶提交此表單時,他/她將被自動註銷。

任何想法如何解決這個問題或實現這更優雅嗎?

回答