2016-05-13 19 views
-6

私は、パラメータ(のparams [:許可])があります、私のコントローラで解決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) 

持っている:あなたが見ることができるように、URLから来るしかし

@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_selectedemployee_idメソッドは、文字列であり、このメソッドは提供されていません。明らかにこれは動作しません。おそらくparams[:employee]employee_idが含まれており、PortabilityがActiveModelまたはActiveRecordのであると仮定し

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

をしたいです。

おそらく、イニシャライザで値を割り当てることができるフォームを変更することはできますか?

+0

コピー貼り付けの '= authorization_selected'を' = params [:employee] 'と正しく表示されるように変更することを心配していませんか? :) – mudasobwa

+0

なぜ私は否定的な私ですか?私は6ポイント以上を失った:( –

+0

権限は従業員に属し、移植性は認可と従業員に帰属する。 –