0

多くのメイン カテゴリがあり、各サブ カテゴリに追加したい.->

メインカテゴリー
-サブカテゴリー
-サブカテゴリー
-サブカテゴリー

メインカテゴリー
-サブカテゴリー
-サブカテゴリー
-サブカテゴリー

多くの人がgemの使用を勧めていますが、私はRailsにかなり慣れていないので、自分でこれを行う方法を学び、すべてを学びます。

Scaffoldから始めるべきですか、それとも単に aから始めるべきModelですか?

誰かが開始方法(移行など)と設定方法を説明してもらえますか?

ありがとうございました。

4

1 に答える 1

6

で新しいモデルをrails g model category生成し、生成されたファイルを編集しdb/migrateてこれを書き込む必要があります

class CreateCategories < ActiveRecord::Migration
    def change
        create_table :categories do |t|
            t.belongs_to :category
            t.string :name, :null => false
            t.timestamps
        end
    end
end

そして編集app/models/category.rb

class Category < ActiveRecord::Base

    belongs_to :category
    has_many :children, :dependent => :destroy, :class_name => 'Category'

end

rake db:migrateそして、データベースにテーブルを作成するために実行する必要があります。

編集:

app/controllers/categories_controller.rb 内

class CategoriesController < ApplicationController

    def index
        @categories = Category.all
    end

    def new
        @category = Category.new
    end

    def edit
        @category = Category.find(params[:id])
    end

    def create
        @category = Category.new(params[:category].permit!)
        if @category.save
            redirect_to categories_url
        else
            render :new
        end
    end

    def update
        @category = Category.find(params[:id])
        if @category.update_attributes(params[:category].permit!)
            redirect_to categories_url
        else
            render :edit
        end
    end

    def destroy
        Category.destroy(params[:id])
        redirect_to categories_url
    end

end

カテゴリのフォーム:

<%= form_for @category do |f| %>

    <%= f.text_field :name %>
    <%= f.select :category_id, options_from_collection_for_select(Category.all, :id, :name, @category.category_id), :include_blank => true %>

    <%= f.submit %>

<% end %>
于 2013-08-14T17:03:45.427 に答える