目标:做一个博客系统,有两张表,分类(post_categories)和文章(posts).想保持rails的scaffold,尽量减少代码编写,来完成CRUD功能。
1。数据库表:
\db\migrate\002_create_post_categories.rb
create_table :post_categories do |t|
t.column :name, :string, :null =>false
\db\migrate\002_create_post.rb
create_table :posts do |t|
t.column :category_id, :integer, :null =>false
t.column :title, :string
t.column :doc, :text
t.column :addTime, :datetime, :default =>'0000-00-00 00:00:00'
t.column :isOpen, :boolean, :default =>true
t.column :acount, :int, :default =>1
end
execute "alter table posts add constraint fk_post_category foreign key (category_id)
references post_categories(id)"
2.用generate生成Models和Controllers
3.用generate生成views:
generate:scaffold
model name: post
controller name:post
actions:post
默认情况下,我们看到:\app\views\post\new.rhtml
<% form_tag :action => 'create' do %>
<%= render :partial => 'form' %>
<%= submit_tag "Create" %>
<% end %>
但因为posts外键连接了表post_categories,而以上的表单没有指定category_id字段,所以操作是不成功的。现在做以下修改:
\app\controllers\post_controller.rb
def new
@post = Post.new
@post_categories=PostCategory.find(:all)
end
即在原来默认的基础上,增加了@post_categories=PostCategory.find(:all)
然后修改页面:\app\views\post\new.rhtml
<% form_tag :action => 'create' do %>
<%= render :partial => 'form' %>
<select name="post[category_id]">
<% @post_categories.each do |c| %>
<option value="<%=c.id%>"><%=c.name%></option>
<% end %>
</select>
<%= submit_tag "Create" %>
<% end %>
这样,程序运行成功,可以添加文章了。
不过问题又来了,因为posts表单是默认渲染的,在添加文章的时候显示了标示文章浏览次数的字段acount.而这个字段是不要求用户输入的,我们需要在添加文章的时候隐藏这个字段,怎么办?
怎么办。。。
分享到:
相关推荐
基于Edge Rails运行的CRUD2 博文链接:https://mmm.iteye.com/blog/116934
GoOnRails: 一个Rails生成器用于生成Go代码并集成Go APIs至一个Rails app中
在这个应用程序中,我给出了如何使用 Rails4 和 AngularJS 创建 CRUD 操作的示例。 使用 AngularJS 创建嵌套表单 当我们需要在 rails 中创建嵌套表单时,我们使用了nested_form gem。 但是如果你使用 AngularJS ...
一些生成器可以轻松将Rails模型与集成。 我之所以创建它,是因为我浪费了太多的按键来手动复制模型架构以创建graphql类型。 该项目包含用于查看ActiveRecord模型架构的生成器,并为您生成graphql类型。 gql:model...
routing-filter 包裹了 Rails 路由系统的复杂野兽,在 Rails URL 识别和生成中提供了看不见的灵活性和强大功能 路由过滤器围绕着复杂的野兽,Rails 路由系统在 Rails URL 识别和生成中提供了看不见的灵活性和强大...
Simple Form - 轻松处理Rails表单
ruby rails demo, rails 简单demo。 (1)到ruby官网:http://www.ruby-lang.org/en/下载window安装包,并安装, ruby版本: ruby -v (2)安装Rails3 gem install rails (3)安装sqlite3 gem install sqlite3-ruby 安装...
bootstrap-generators, Bootstrap 生成器为 Rails 提供 Twitter Bootstrap 生成器 Bootstrap 生成器 bootstrap生成器为 Rails 4 ( 支持的Rails> = 3.1 ) 提供 Twitter Bootstrap 生成器。 Bootstrap 是 Twitter的...
Ruby on Rails中文指南
简单的CLI利用Docker生成和运行Rails的环境
这将为您的项目创建一个新文件夹,请确保在所有文件中搜索Rails6Scaffold和rails6_scaffold ,因为在某些地方您需要手动更改名称。 这是找到的文件列表,在运行“重命名” gem后需要手动更新: app/views/layouts...
在Rails API中创建CRUD的框架。 安装 将此行添加到您的应用程序的Gemfile中: gem 'croods' 然后执行: $ bundle 用法 资源资源 资源是应用程序需要表示的任何对象的通用抽象。 代替app/models/和app/...
了解您的Ruby on Rails应用程序渲染速度有多快。 基于来自日志的信息。 为您提供渲染频率以及渲染视图的速度。
使用Rails和React创建一个简单的CRUD应用 这是代码存储库,其中包含有关如何创建Rails API的教程,然后使用Webpacker gem来构建React前端以使用它。 教程网址: : 要求 本教程开始时有安装Ruby和Node的说明。 ...
Rails Erd - 为Rails应用程序生成实体关系图
get_schwifty: 利用ActiveJob ActionCable在后台作业队列中渲染部分Rails视图
NULL 博文链接:https://sinkzephyr.iteye.com/blog/361023
主要介绍了使用Ruby on Rails和PostgreSQL自动生成UUID的教程,主要利用到了PostgreSQL的插件uuid-ossp,需要的朋友可以参考下