1

Rails4、Ruby2を使用しています。

アプリでサインアップにアクセスするたびに、エラーがスローされます。

undefined method `plan_id=' for #<User:0x007f0721517f28>

完全な UsersController は次のとおりです。

http://hastebin.com/titisaweva.rb

完全な User モデルは次のとおりです。

http://hastebin.com/tuhokinabi.rb

計画モデルは次のとおりです。

class Plan < ActiveRecord::Base
  has_many :users
end

エラーは、UsersController の 16 行目に問題があることを示しています。

if !ENV['STRIPE_API_KEY'] || params[:coupon]
  @user.plan_id = Plan.find_by_stripe_id('free').id
end

私はレールにやや慣れていないため、この問題の原因を突き止めるのに苦労しています。誰かに提案があれば、本当に感謝しています。

4

1 に答える 1

2

の15〜17行目は次のUsersControllerとおりです。

 if !ENV['STRIPE_API_KEY'] || params[:coupon]
   @user.plan_id = Plan.find_by_stripe_id('free').id
 end

属性に値を割り当てようとしてい plan_idますが、その属性のフィールドがusersテーブル内に存在しません。移行を使用してこのフィールドを追加する必要があります。

rails g migration add_plan_id_to_users plan_id:integer
rake db:migrate
于 2013-09-17T23:51:25.893 に答える