एक्शनकंट्रोलर की नई respond_with
विधि का उपयोग करना ... यह निर्धारित करता है कि कार्रवाई (सहेजने) सफल होने पर और कब नहीं किया जाता है?रेल को समझना 3 का जवाब_with
मैं पूछता हूं क्योंकि मैं पास करने के लिए एक मचान उत्पन्न नमूना (नीचे शामिल) प्राप्त करने की कोशिश कर रहा हूं, अगर केवल इतना है कि मैं इसे समझ सकता हूं। ऐप ठीक काम कर रहा है लेकिन, विचित्र रूप से, यह /carriers
प्रतिपादन प्रतीत होता है (कम से कम यही ब्राउज़र का यूआरएल कहता है) जब सत्यापन विफल हो जाता है। फिर भी, यह अनुमान "new"
(और मैं भी इस मामले के लिए) की उम्मीद कर रहा हूं लेकिन इसके बजाय <"">
प्राप्त कर रहा है। यदि मैं ""
की अपेक्षा करने के लिए spec को बदलता हूं तो यह अभी भी विफल रहता है।
जब यह /carriers
प्रस्तुत करता है तो वह पृष्ठ उन फ़ील्ड के बगल में error_messages दिखाता है जो सत्यापन की विफलता के रूप में विफल होते हैं।
क्या कोई भी respond_with
से परिचित हो सकता है कि यहां क्या हो रहा है?
#carrier.rb
validates :name, :presence => true
#carriers_controller.rb
class CarriersController < ApplicationController
respond_to :html, :json
...
def new
respond_with(@carrier = Carrier.new)
end
def create
@carrier = Carrier.new(params[:carrier])
flash[:success] = 'Carrier was successfully created.' if @carrier.save
respond_with(@carrier)
end
युक्ति में नाकाम रहने की जाती है कि:
1) CarriersController POST create with invalid params re-renders the 'new' template
Failure/Error: response.should render_template("new")
expecting <"new"> but rendering with <"">.
Expected block to return true value.
# (eval):2:in `assert_block'
# ./spec/controllers/carriers_controller_spec.rb:81:in `block (4 levels) in <top (required)>'
आप 'वाहक 'में' वाहक 'नया' और अपने वाहक नियंत्रक के '# निर्माण' कार्यों दोनों का आह्वान कर रहे हैं। मुझे लगता है कि यह 'def create 'कार्रवाई विधि में' वाहक .create (पैराम [: वाहक]) होना चाहिए। – Ernesto