2016-05-13 84 views
-6

我有一個參數(PARAMS [:授權])是來自URL,你可以看到:解決Fixnum對象錯誤

authorization_selected = params[:authorization] 
new_parcel = params[:new_parcel].to_i 

puts authorization_selected.class (in the console show type String) 
puts new_parcel.class (in the console show type Fixnum) 

在我的控制器,具有:

@portability = Portability.new 
@portability.employee_id = authorization_selected.employee_id 

然而,這返回一個錯誤:

undefined method `employee_id' for 3:Fixnum 

我需要這兩個都是整數。它怎麼樣?

+3

您的代碼示例和錯誤消息不匹配。授權是一個字符串,但錯誤消息說它是一個Fixnum。 –

+1

請發佈完整的代碼,而不是它的一個樣本。你所說的應該給出一個不同的錯誤,因爲'authorization_selected'是一個字符串。根據你的第一部分代碼,不是fixnum。你的意思是做'@portability.employee_id = new_parcel'嗎? –

+1

不,@ portabilitity.employee_id = @ authorization.employee_id(但不工作)。並且new_parcel是通過輸入輸入的值 –

回答

2

您正在調用方法authorization_selected這是一個字符串,不提供此方法。 顯然這是行不通的。你可能想要做

@portability = Portability.new 
@portability.employee_id = authorization_selected 

假設params[:employee]包含employee_idPortability是一個或加載ActiveModel一個ActiveRecord。

也許你可以改變你的形式,該值可以通過初始化程序分配?

+0

注意要將正確複製粘貼的'= authorization_selected'更改爲[可能]正確提及'= params [:employee]'? :) – mudasobwa

+0

爲什麼消極我?我失去了六分以上,因爲:( –

+0

授權屬於員工,可移植性屬於授權和員工 –

相關問題