2009-11-29 17 views
24

मेरे पास यह कोड है:अपरिभाषित विधि 'stringify_keys!' रूबी ऑन रेल्स

def addcar 
    @car = Car.new(params[:car]) 
    render :action => 'list' 
end 

<% @allcars.each do |cell| %> 
    <p> 
    <%= link_to cell.to_s, :controller => 'car', :action => 'addcar', :car => cell.to_s %> 
    </p> 
<% end %> 

यह मुझे यह त्रुटि दे रहा है:

undefined method `stringify_keys!' for "Honda":String

मुझे समझ में नहीं आता कि :car के साथ क्या गलत है।

उत्तर

42
addcar विधि में

, आप इसे करने के लिए सिर्फ एक स्ट्रिंग (params[:car] जो जाहिरा तौर पर "होंडा" पर सेट है) स्थानांतरित करते हुए एक नई वस्तु (create विधि) बनाने का प्रयास करें।

create एक विशेषता हैश प्राप्त करने की अपेक्षा करता है और कॉलम नामों के लिए इसकी कुंजी को स्ट्रिंग करने की अपेक्षा करता है।

आप अपनी कारों में एक कॉलम नामित नाम है, तो तालिका तो यह प्रयास करें:

@car = Car.new(:name => params[:car]) 
+0

दुर्भाग्य है कि सिर्फ मुझे देता है: अपरिभाषित स्थानीय चर या # के लिए विधि 'carName ' Lilz

संबंधित मुद्दे