0
我創建了一個Rails應用程序,允許訪問者在線閱讀雜誌。我創建了兩個腳手架,一個用於雜誌本身,另一個用於雜誌內的頁面,這將成爲掃描圖像。未定義的方法'+'爲#<Class >
事情是,我使用頁碼(整數)作爲參考,而不是id,因爲我想雜誌的第一頁的url看起來像這樣:localhost:3000/magazines/magazine-test/1
,而不是它的ID。所以,當上傳一本新雜誌時,我會創建一個循環,在循環索引的幫助下增加pagazine頁面的編號。
這裏是我的「創造」的動作,讓你有一個很好的觀點是什麼我談論:
def create
@magazine = Magazine.new(magazine_params)
if @magazine.save
(params[:images] || []).each_with_index do |image, index|
@magazine.pages.create(image: image, page_number: index + 1)
end
redirect_to @magazine, notice: 'Magazine créé'
else
render :new
end
end
我的問題是,如果我嘗試更新這本雜誌,並添加幾頁,頁碼將回落至1。所以,我想修改我的「更新」行動如下:
def update
if @magazine.update(magazine_params)
if params[:images]
(params[:images] || []).each_index do |image, index|
@pages = @magazine.pages.order("page_number DESC").first
@magazine.pages.create(image: image, page_number: @pages + index + 1)
abort(@pages)
end
end
redirect_to @magazine, notice: 'Magazine mis à jour'
else
render :edit
end
end
然而,用這種方法,我得到以下錯誤:NoMethodError in MagazinesController#update undefined method '+' for #<Page:0x007fe694b15af8>
我嘗試了一些東西(如將該變量轉換爲整數),但仍然出現此錯誤。
任何人作爲一個想法?
預先感謝您
我嘗試這樣做,我得到了以下錯誤:'無不能強迫Fixnum' – Jaeger
我做了一個編輯,醜陋的,哈克,但應該給你一個想法如何解決它 –
||意思是「或」,所以如果@ pages.page_number返回零,它將使用0 –