rails4系
次のようなエラーがでており、原因がわからずに困っております。
NoMethodError: undefined method `[]' for nil:NilClass from /Users/ryouhasegawa/work/jada/vendor/bundle/ruby/2.2.0/gems/activerecord-4.2.4/lib/active_record/attribute_methods/before_type_cast.rb:47:in `read_attribute_before_type_cast'
ArticleモデルとCategoryモデルがあり、
Articleの登録フォームにおいて、Category(のname)をバリデーションしなければならず
f.fields_for :category, @article.category || Category.new do |c|
とした上でCategoryのモデルにvalidate: :name としました。
そこまでですと、通常は問題ないかと思うのですが、
今回は、Vue.jsを使用しており、かつ、細かなヘルパー等を使用しているのと、その作成者が現在いないこともあり、無理やり、attr_accessorを使用して次のようにハードコーディングしております。
class Article < ActiveRecord::Base attr_accessor :category_name belongs_to :category
このcategory_nameをparamaterに加えて、ストロングパラメータでもcategory_nameを受け取れるようにしました。
あとは保存が上手くできればと思っていたのですが、そこにて最初にあったエラーがでてしまいました。
エラー内容で調べているのですが、よくわからず、どうしていいのか途方にくれております。
このサイトが一番解決に近そうだったので、これをもとに、ActiveRecord::Errors へのパッチを作成したりしてみたのですが、ダメでした。
どなたか、原因が分かりますでしょうか?
宜しくお願いします。
※ Vue.jsの方で、ネストしたパラメータに対してもバリデーションをできるようにするというのも方法としてありますが、Vue.jsがよくわからないため、Rails側で解決したいと考えております。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。