在Rails4中添加子类别
我有很多主要类别,并希望添加到每个子类别.->
主要类别
– 子类别
– 子类别
– 子类别
主要类别
– 子类别
– 子类别
– 子类别
很多人建议我使用gem,但由于我对Rails相当新,我宁愿自己学习如何做到这一点,也要学习他们所有的方法。
我应该从Scaffold
还是仅仅是Model
?
有人可以解释我如何开始(迁移等)以及如何设置它?
谢谢。
您必须使用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 %>
- bootstrap模式没有正确弹出
- 为什么即使我删除了application.js文件,Capypara + Rspect测试仍然通过?
- 不同的路由,但在Rails中使用相同的控制器进行模型子类
- 如何在haml模板中的coffeescript中的ruby代码中使用本地或实例变量
- Rails 4:如何通过AJAX更新基于另一个collection_select的collection_select?
- Rails嵌套SQL查询
- 运行bundle install时出现Nokogiri错误
- Ruby on Rails:如果是当前页面? 是主页,不显示表格
- Rails – Accepts_nested_attributes_for质量分配错误