質問編集履歴

2 app/models/category.rbの修正

t1gerkngd0m

t1gerkngd0m score 26

2016/04/21 23:45  投稿

ruby on rails でブログ投稿機能を作ろうとしています
ruby on rails で初心者向けのブログ投稿、カテゴリ選択できるwebアプリを作っています。 
ローカルホストでhttp://localhost:3000/categories/newを表示しようとしたところ、次のエラー分が出ました。
エラー文
app/views/categories/new.html.erb where line #5 raised:
undefined method `name' for #<Category id: nil, created_at: nil, updated_at: nil>
ソースコード
```ruby
app/views/categories/new.html.erb
<h1>New Category</h1>
<%= form_for(@category) do |f| %>
 <div class="field">
   <%= f.label :name %><br>
   <%= f.text_field :name %>
 </div>
 <div class="actions">
   <%= f.submit %>
 </div>
<% end %>
app/controllers/categories_controller.rb
class CategoriesController < ApplicationController
   def index
       @categories = Category.all
   end
   def show
       @category = Category.find(params[:id])
   end
   def create
         category_params = params.require(:category).permit(:name)
         @category = Category.new(category_params)
         if @category.save
             redirect_to @category, notice: 'Category was successfully created'
         else
             render :new
         end
   end
   def new
       @category = Category.new
   end
end
app/models/category.rb
```ruby  
class Category < ActiveRecord::Base
   has_many :posts
end
```  
```
これってnameが定義されてないってことですよね?
かなり初歩的な質問ですが、nameはどこで定義すればよいのでしょうか?
ご教授いただきたいです。
  • Ruby on Rails 4

    2669 questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

1 app/models/category.rb を追加しました

t1gerkngd0m

t1gerkngd0m score 26

2016/04/21 23:43  投稿

ruby on rails でブログ投稿機能を作ろうとしています
ruby on rails で初心者向けのブログ投稿、カテゴリ選択できるwebアプリを作っています。 
ローカルホストでhttp://localhost:3000/categories/newを表示しようとしたところ、次のエラー分が出ました。
エラー文
app/views/categories/new.html.erb where line #5 raised:
undefined method `name' for #<Category id: nil, created_at: nil, updated_at: nil>
ソースコード
```ruby
app/views/categories/new.html.erb
<h1>New Category</h1>
<%= form_for(@category) do |f| %>
 <div class="field">
   <%= f.label :name %><br>
   <%= f.text_field :name %>
 </div>
 <div class="actions">
   <%= f.submit %>
 </div>
<% end %>
app/controllers/categories_controller.rb
class CategoriesController < ApplicationController
   def index
       @categories = Category.all
   end
   def show
       @category = Category.find(params[:id])
   end
   def create
         category_params = params.require(:category).permit(:name)
         @category = Category.new(category_params)
         if @category.save
             redirect_to @category, notice: 'Category was successfully created'
         else
             render :new
         end
   end
   def new
       @category = Category.new
   end
end
 
app/models/category.rb  
```ruby  
class Category < ActiveRecord::Base  
   has_many :posts  
end  
```  
```
これってnameが定義されてないってことですよね?
かなり初歩的な質問ですが、nameはどこで定義すればよいのでしょうか?
ご教授いただきたいです。
  • Ruby on Rails 4

    2669 questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る