好吧,我只是想寫一些簡單的代碼來更新給定ID的記錄。這就是它的樣子。Ruby on Rails:更新數據問題
def updaterecord
bathroom = Bathroom.find(params[:key])
bathroom.name= params[:name],
#bathroom.bathroomtype = params[:bathroomtype],
bathroom.street = params[:street]
#bathroom.city = params[:city],
#bathroom.state = params[:state],
#bathroom.country = params[:country],
#bathroom.postal = params[:postal],
#bathroom.access = params[:access],
#bathroom.directions = params[:directions],
#bathroom.comment = params[:commment],
#bathroom.avail = params[:avail]
bathroom.save
end
問題是,雖然我試圖更新每個單獨的屬性,他們都被連接到名稱字段。例如,上面的代碼將名稱字段設置爲名稱加上地址。我不知道爲什麼?
如果我在更新後嘗試查詢,則這是控制檯的外觀。
Bathroom Load (0.2ms) SELECT "bathrooms".* FROM "bathrooms" WHERE "bathrooms"."ID" = ? LIMIT 1 [["ID", 4017]]
=> #<Bathroom ID: 4017, name: "--- \n- ttyt\n- 113 some\n", bathroomtype: "0", street: "113 some", city: "Portland", state: "OR", country: "United States", postal: "97217", lat: #<BigDecimal:1109f2890,'0.4558056E2',12(12)>, lon: #<BigDecimal:1109f27c8,'-0.122677857E3',12(16)>, access: "0", directions: "", comment: nil, created: "2012-06-08 17:19:03.420329", modifed: "", avail: "1", slug: "", source: "Squat">
而這正是後值的樣子:
post values = key=4017&name=www&bathroomtype=0&street=7540 N Interstate Ave&city=Portland&state=OR&country=United States&postal=97217&access=0&directions=&comment=<null>&avail=1
爲什麼我不能讓每個字段逐個更新?對不起,我對發生了什麼感到困惑?
有沒有你不想要使用或的update_attributes一個update_column特別的原因?儘可能多的(給定註釋部分的代碼)或少數(未註釋的部分),使用其中一種方法可能會更清晰。看看這篇文章:http://stackoverflow.com/questions/2778522/rails-update-attribute-vs-update-attributes請注意,update_attribute(單數)被棄用,贊成update_column。 – jflores