2016-02-17 35 views
-1

我想檢查數據庫中是否存在數據..如果不是,我應該保存數據..我用過嗎?方法就像控制器下面..是否存在?方法不在軌道工作

def party_order_create 
    @party_order = PartyOrder.new(party_order_params) 
    if not PartyOrder.exists?(@party_order) 
    then @party_order.save 
    flash[:notice] = "Party Saved Successfully!!!" 
    redirect_to :action => "party_order_index" 
    else 
    flash.now[:notice] = "Party not Saved" 
    render "party_order_new" 
    end 
end 

它不工作..敬請指正..

+0

你是什麼意思不工作?你已經有了這些屬性的派對訂單? –

+0

使用有效嗎?方法 – Dias

+0

當我使用有效?方法新值不會保存在數據庫中。 – kelvin

回答

-2
@party_order=PartyOrder.find_or_create_by(party_order_params) 

if @party_order.present? 

    // code 

else 

    // code 

end 
//

或試試這個

@party_order=PartyOrder.where(party_order_params) 

if @party_order.present? 

    flash.now[:notice] = "Party not Saved" 

    render "party_order_new" 

else 

    @party_order=PartyOrder.new(party_order_params) 

    if @party_order.save 

     flash[:notice] = "Party Saved Successfully!!!" 
     redirect_to :action => "party_order_index" 
    end 

end 
+0

謝謝..它爲我工作。但它重定向到party_order_index並顯示閃存成功保存成功。我怎麼能改變這個? – kelvin

+0

Thankyou sooo – kelvin

+0

嗨@kelvin如果這個或任何答案已經解決了您的問題,請考慮通過點擊複選標記和upvote來接受它。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做 – Dias

0

嘗試使用

if @party_order.present? 

代替:

if PartyOrder.exists?(@party_order) 

所以它可以被重寫爲:

def party_order_create 
    @party_order=PartyOrder.new(party_order_params) 
    @party_order.save 
    if @party_order.present? 
    flash[:notice] = "Party Saved Successfully!!!" 
    redirect_to :action => "party_order_index" 
    else 
    flash.now[:notice] = "Party not Saved" 
    render "party_order_new" 
    end 
end 
+0

我收到以下錯誤..未定義的方法'存在?'爲# kelvin

+0

請使用'valid?'或「存在」?而不是'存在嗎?'。請嘗試編輯的代碼。 – Akshay

+0

對不起..它沒有拋出任何錯誤..但現有的價值也得到存儲..它不檢查..我希望如此,請幫助我的變化..我很抱歉如果我的問題刺激你..我是新的Rails .. – kelvin