rails 命令

创建新项目:rails new meetup -d mysql

migrate数据库:rake db:create db:migrate

生成controller:rails generate controller welcome

生成model:rails g model event name:string description:text is_public:boolean capacity:integer

查看路由: rake routes

rake帮助查看:rake -T

scaffold生成简易crud程序命令:rails g scaffold person name:string bio:text birthday:date

生成新的栏位:rails g migration add_status_to_events

行数统计:rake stats

查看log:tail -f log/development.log

 

一对多:

class Category < ActiveRecord::Basehas_many :events
endclass Event < ActiveRecord::Basebelongs_to :category# ...
end

创建、删除、查找、
u = User.first
a = Article.new(...........)
a.user_id = u.id
a.save
e = Event.first
e.attendees.destroy_all # 一筆一筆刪除 e 的 attendee,並觸發 attendee 的 destroy 回呼
e.attendees.delete_all # 一次砍掉 e 的所有 attendees,不會觸發個別 attendee 的 destroy 回呼

a = e.attendees.find(3)
attendees = e.attendees.where( :name => 'ihower' ) #查出来的是数组

一对一:
class Event < ActiveRecord::Basehas_one :location # 單數#...
endclass Location < ActiveRecord::Basebelongs_to :event # 單數
end

多对多
class Event < ActiveRecord::Basehas_many :event_groupshipshas_many :groups, :through => :event_groupships
endclass EventGroupship < ActiveRecord::Basebelongs_to :eventbelongs_to :group
endclass Group < ActiveRecord::Basehas_many :event_groupshipshas_many :events, :through => :event_groupships
end
一对多创建 @attendee = @event.attendees.build
一对多路由:
resources :events doresources :attendees, :controller => 'event_attendees'
end
一对一创建 @location = @event.build_location
一对一路由

  resources :user do
  resource :role, :controller => 'user_role'
 end

Nested Model

user的model里加上    accepts_nested_attributes_for :role, :allow_destroy => true, :reject_if => :all_blank

user 的new.html里加上

<%= f.fields_for :role do |role_form| %>
<p>
<%= role_form.label :name, "Role Name" %>
<%= role_form.text_field :name %>

<% unless role_form.object.new_record? %>
<%= role_form.label :_destroy, 'Remove:' %>
<%= role_form.check_box :_destroy %>
<% end %>
</p>
<% end %>

user的helper加上

def setup_user(user)
  user.build_role unless user.role
  user
end

user的controller改成

def event_paramsparams.require(:event).permit(:name, :description, :category_id, :location_attributes => [:name] )
end

提交表单改成
<%= form_for setup_event(@event), :url => events_path do |f| %>
 



 

转载于:https://www.cnblogs.com/Akishimo/p/4360303.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在状态栏中显示鼠标位置坐标

&#xff08;1&#xff09;在状态栏资源中添加一个窗格。实现的方法是打开MainFrm.cpp文件&#xff0c;找到静态数 组indicators的定义&#xff0c;在第一个数组元素ID_SEPARATOR后面增加一个新的数组元素&#xff0c;即 添加了一个新的窗格&#xff0c;为了表明这个窗格的用…

一文了解半导体的过去、现在和未来

来源&#xff1a;中科院半导体所半导体发展历史1 半导体是信息化的基础上个世纪半导体大规模集成电路、半导体激光器、以及各种半导体器件的发明&#xff0c;对现代信息技术革命起了至关重要的作用&#xff0c;引发了一场新的全球性产业革命。信息化是当今世界经济和社会发展的…

C++面试宝典第9题:找出第K大元素

题目 给定一个整数数组a,同时给定它的大小N和要找的K(1 <= K <= N),请根据快速排序的思路,找出数组中第K大的数(保证答案存在)。比如:数组a为[50, 23, 66, 18, 72],数组大小N为5,K为3,则第K大的数为50。 解析 这道题主要考察应聘者对于快速排序的理解,以及实…

MFC中修改应用程序主窗口的标题

1、第一种方法&#xff1a; 找到字符串资源中的IDR_MAINFRAME&#xff0c; 将“MyTextOut\n\nMyText\n\n\nMyTextOut.Document\nMyTextDocument”替换为 “我的窗口\n\nMyText\n\n\nMyTextOut.Document\nMyTextDocument”。 效果如下&#xff1a; 2、第二种方法&#xff1a; 在…

中国占三分之一!CBinsights世界最新独角兽排名出炉

来源&#xff1a;智东西摘要&#xff1a;揭晓最新的全球独角兽公司榜单。3月14日&#xff0c;知名市场研究机构CB Insights发布了最新的世界独角兽公司信息图表。CB Insights实时追踪并统计全球独角兽公司&#xff0c;全球共有326家价值10亿美元以上的私人公司上榜&#xff0c;…

用js使得输入框input只能输入数字

JS判断只能是数字和小数点1.文本框只能输入数字代码(小数点也不能输入)<input οnkeyup"this.valuethis.value.replace(/\D/g,)" onafterpaste"this.valuethis.value.replace(/\D/g,)">2.只能输入数字,能输小数点.<input οnkeyup"if(isNaN(…

华为自研操作系统官宣了,但有机会成功吗

来源&#xff1a;网易智能摘要&#xff1a;近日&#xff0c;据媒体报道&#xff0c;华为余承东在接受德国《世界报》采访时正式承认&#xff0c;华为自研操作系统确实存在&#xff0c;不仅支持手机和PC&#xff0c;而且已经研发了七年&#xff01;“华为确实已经准备了一套自研…

修改应用程序的图标

MFC程序的工程有3个文件夹&#xff0c;debug&#xff0c;release和res。查看其中的debug目录发现所生成 的应用程序EXE文件仍使用默认图标。若要修改EXE文件的图标&#xff0c;只要将res文件夹中的 应用程序图标文件替换成想要的图标文件&#xff08;在MFC中将图标ID为IDR_MAIN…

表变量和临时表的使用

表变量存储在内存中&#xff0c;而临时表存储在tempdb中&#xff0c;会涉及到物理IO读写&#xff0c;那么我们是否可以由此得出结论&#xff0c;使用表变量要比使用临时表效率高呢&#xff1f;相信有一部分人会和我有同样的想法&#xff0c;使用表变量的效率高&#xff0c;真是…

只有大规模算力才能救AI?强化学习之父 vs 牛津教授掀起隔空论战

乾明 安妮 发自 凹非寺量子位 出品 | 公众号 QbitAI70年来&#xff0c; 人们在AI领域“一直连续犯着同样的错误”。这是“强化学习之父”理查德萨顿&#xff08;Richard S. Sutton&#xff09;为同行后辈们敲响的警钟。他在博客上发表最新文章《苦涩的教训》(The Bitter Lesson…

MFC中为菜单命令添加快捷键

&#xff08;1&#xff09;添加“帮助/我的帮助”菜单项。ID为ID_MY_HELP&#xff0c;Caption为“我的帮助(&H)”&#xff0c; 设CtrlH作为该命令的快捷键。 当执行CtrlH命令时&#xff0c;使用一个信息对话框显示简单的帮助信息。 添加代码如下&#xff1a; void CMainF…

模拟 Codeforces Round #288 (Div. 2) A. Pasha and Pixels

题目传送门 1 /*2 模拟水题&#xff1a;给定n*m的空白方格&#xff0c;k次涂色&#xff0c;将&#xff08;x&#xff0c;y&#xff09;处的涂成黑色&#xff0c;判断第几次能形成2*2的黑色方格&#xff0c;若不能&#xff0c;输出03 很挫的判断四个方向是否OK4 */5 #in…

IBM 内核惨败:20 亿美元打水漂 !

来源&#xff1a;云头条摘要&#xff1a;IBM早在20世纪90年代豪赌微内核&#xff0c;看好它是操作系统领域的下一大技术&#xff0c;为此不惜耗费数十亿美元&#xff0c;最后却没多少成果。20世纪90年代早期&#xff0c;我们不知道计算机行业的发展方向&#xff0c;下一代技术是…

ceSetThreadPriority设置线程优先级~!

ceSetThreadPriority 一直採用SetThreadPriority&#xff0c;结果今天发帖询问线程时间问题&#xff0c;才突然顿悟。。。发现SetThreadPriority只设置248-255&#xff0c;也就是说就算是设为最高优先级&#xff0c;顶多是248.。。。差好远呢。。。而ceSetThreadPriority的设置…

C语言ODBC连接MySQL数据库制作简易用户登录系统

1、代码如下&#xff1a; #include "stdafx.h" #include <windows.h> #include <windowsx.h> #include <sql.h> #include <sqlext.h> #include <sqltypes.h> #include "resource.h" #include "MainDlg.h" #define…

关于交通创新,这五大智慧城市做了啥?

来源&#xff1a;资本实验室在现代城市中&#xff0c;交通的可达性和运输效率是衡量城市运营水平的重要指标。而随着城市人口越来越多&#xff0c;城市规模不断变大&#xff0c;如何打造高效、舒适、快速出行的交通系统已经成为城市管理机构面临的一大挑战。随着传感器成本的持…

C/C++产生随机数

<一> C/C如何产生随机数&#xff1a;这里要用到的是rand()函数, srand()函数&#xff0c;C语言/C里没有自带的random(int number)函数。 (1) 假设你仅仅要产生随机数而不须要设定范围的话&#xff0c;你仅仅要用rand()就能够了&#xff1a;rand()会返回一随机数值, 范围…

应用程序利用ADO对象访问数据库

1、已创建MySQL数据库employeedb&#xff0c;数据库中有如下所示的employeetb表。 2、在使用ADO对象之前&#xff0c;必须在工程的Stdafx.h文件里用直接引入符号#import引入 ADO库文件&#xff0c;以使编译器能够正确编译。代码如下&#xff1a; #import "D:\Program Fil…

人工智能让育种“物美价廉”

预测二元化基因表达量的卷积神经网络模型建立来源&#xff1a;中国科学报自从作物被驯化以来&#xff0c;培育集抗性强、优质、高产等性状为一体的作物品种一直是育种家的梦想。DNA分子结构模型的发现推动了分子生物学的发展&#xff0c;让育种家们能够从基因和分子水平上解码作…

Socket编程应用——开发聊天软件

1、客户端应用程序开发 建立一个基于对话框的MFC应用程序&#xff0c;创建的时候记得勾选【Windows Sockets】&#xff0c;其 他的默认就行。 &#xff08;1&#xff09;、对话框如图所示&#xff1a; &#xff08;2&#xff09;代码如下&#xff1a; // ChatClientDlg.cpp …