- 浏览: 215779 次
- 性别:
- 来自: 绍兴
文章分类
最新评论
-
112703013:
你好, 想问个问题 就是我这边上传一个zip文件 大概有100 ...
rails文件上传下载和删除 . -
chen_miao:
qplovechinese 写道 很好!
3q
simple jQuery date-picker plugin 使用 -
qplovechinese:
很好!
simple jQuery date-picker plugin 使用
以form_for为例
<% form_for :product, :url=>{:action=>'create'}, :html=>{:multipart=>true} do |form| %>
<%end%>
1 表格为products,假设,字段: name,
<%=form.text_field 'name',{},:size=>20%>
def create
product=Product.new(params[:name])
product.save
end
end
2 多个动态添加字段 name
<%=form.text_field 'name[]',:size=>20%>
保存:
def create
params[name].each do |name|
product=Product.new(name)
product.save
end
end
保存提到model
def create
product=Product.batch_build(params[:name])
end
model 方法
def self.bath_build name
name.each do |n|
product=Product.new(n)
product.save
end
end
3 不属于procducts表,例如users 中的 phone,但必需在表单提交内
<%=text_filed_tag 'user[phone]',{},:size=>20%>
def create
user=User.new(params[:user][phone])
user.save
或是 user.phone=params[:user][:phone] user.save
end
4 不属于Products表,动态添加字段
view:
<td>
<%=text_field_tag 'material[][batch_no]', nil, :size=>3%>
</td>
<td><%=text_field_tag 'material[][composit]', nil, :size=>3%></td>
<td><%=text_field_tag 'material[][tension]', nil, :size=>3%></td>
controller
def create
material_state =MaterialState.build_batch(params[:material])
end
model
def self.build_batch material
material.each do |material|
material=MaterialState.new(material)
material.save
end
5.批量修改
view:
<%@product.material_states.each do |f|%> <%=hidden_field_tag 'material[][id]',f.id%> <tr class="row" > <td> <%=ongoing_material_select 'material[][material_id]',nil %> <%if f.material%> <%=f.material.name%> <%end%> </td> <td> <%=ongoing_provider_select 'material[][provider_id]',nil %> <%if f.material%> <%=f.provider.name%> <%end%> </td> <td> <%=text_field_tag 'material[][batch_no]', f.batch_no, :size=>3 %> </td> <td> <%=text_field_tag 'material[][composit]', f.composit, :size=>3 %> </td> <td> <%=text_field_tag 'material[][tension]', f.tension, :size=>3 %> </td> <td> <%=del_row (f) %> </td> </tr> <%end%>
controller:
def edit prepare_basic_data @product = Product.find(params[:id]) if @product.mparts.size==0 5.times do @product.mparts << Mpart.new end end @style = @product.style end def update @product = Product.find(params[:product][:id]) @product.attributes = params[:product] material=MaterialState.batch_update(params[:material],params[:product][:id]) if @product.save flash[:notice]="修改已经保存,请检查详情" redirect_to :action=>'show', :id=>@product else prepare_basic_data render :action=>'edit' end end
model:
#原料说明更新 def self.batch_update material,product material.each do |m| material_state=MaterialState.find_by_id(m[:id]) if material_state!=nil material_state.update_attributes(m) else material=MaterialState.new(m) material.product_id=product material.save end end end
如果有新的,会及进补充。
希望能我一样的初学者带来帮助
发表评论
-
require,include,load,extend的用途和区别
2013-03-01 22:47 980这四个方法还是很好玩很有用,也是比较容易混的。 ... -
ruby 标准类型总结
2013-02-01 16:45 1244一、数字 Ruby支持整数 ... -
RMagick 简介
2013-01-18 20:38 1416RMagick 是一个将 Ruby 语言绑定到 ImageM ... -
ARP欺骗功能
2013-01-12 22:47 1158一、设置前准备 当使用了防止ARP欺骗功能(IP和 ... -
淘宝开源编辑器KISSY Editor
2013-01-04 16:46 2382KISSY Editor 是开源项目 KISSY ... -
Rails创建定时任务
2012-12-10 10:21 1850Task & Rexcel 最终生成的报 ... -
Ruby on Rails页面缓存 实践
2012-12-05 11:02 1077三种方式 Page Caching, Action ... -
rails缓存学习
2012-11-27 16:38 1892FORM:http://kenbeit.com/tag/ ... -
Ruby on Rails 简单页面缓存
2012-11-16 17:28 1234三种方式 Page Caching, Action Ca ... -
Ruby写入Excel文件 插件方法
2012-11-01 16:21 1530spreadsheet插件(主要是excel生成写入数 ... -
RUBY操作EXCEL文件
2012-10-31 17:05 1422使用ruby来操作excel文 ... -
Ruby on Rails的session和session存储方案
2012-10-18 17:42 1289session:页面间的信息保存手段。使用:赋值 ses ... -
Ruby程序打包成可执行文件的工具 - RubyScript2Exe
2012-09-19 21:28 2280RubyScript2Exe能够将你的Ruby应用程序转成一个 ... -
rails中实现kindeditor中的图片上传
2012-09-14 16:10 1657FROM: http://blog.sina.co ... -
js 彷excel 键盘上下左右移动
2012-09-03 19:11 3044思路假设初始坐标为(0,0)首先要算出表格的最大最小坐标 即( ... -
ruby Hash 总结
2012-08-31 18:51 63101. 如何创建Hash? x = Hash.newx = { ... -
ruby inject,循环计算优化
2012-08-27 16:51 1331From:http://blog.jayfields.com/ ... -
jquery 图表插件highcharts & highstock
2012-08-23 14:43 11203Highcharts是纯JavaScript编写的图表库,提 ... -
rails or ruby 中 fields_for 提交方式
2012-08-20 20:10 1638Project这个Model的new表单,我们需要在创建Pro ... -
Rails中导出excel的快速简便的方法
2012-07-31 15:51 1096controller def to_e ...
相关推荐
在Ruby on Rails框架中,构建表单是一项常见的任务,而Simple Form gem就是为了简化这一过程而设计的。Simple Form是一款强大的表单构建器,它提供了一种简洁、直观的方式来创建复杂的表单,使得开发者能更专注于...
通过这种方式,Cocoon允许用户在前端动态地创建和管理嵌套模型,而无需多次提交表单或者跳转页面。这极大地提高了用户体验,并且使开发者能够更专注于业务逻辑,而不是复杂的前端交互。 在压缩包文件`cocoon-master...
例如,你可以获取用户的IP地址或者他们通过哪个页面提交了表单。 总之,MailForm是Rails开发中的一个强大工具,它简化了邮件发送过程,同时提供了验证、I18n支持和附件功能,使你能够轻松构建高效且用户友好的电子...
在文件上传中,视图通常包含一个HTML表单,允许用户选择本地文件并提交。表单可能会包含`<input type="file">`元素,用户可以通过它来选取文件。视图也可能会显示上传进度或结果反馈。 4. **Database**:文件上传...
# 提交表单 # 这里假设有一个提交按钮,可以根据实际情况选择合适的元素 # ie.button(:value, "Submit").click ``` 此脚本演示了如何使用Watir自动化浏览器操作,并填充表单数据。实际应用中可能还需要处理更多复杂...
通过选择不同的浏览器驱动,你可以针对不同环境进行测试,确保应用在各种浏览器上的表现一致。 安装Watir通常是通过RubyGems,Ruby的包管理器,执行`gem install watir`命令即可。在Windows上,由于可能需要特定的...
# 提交表单或触发搜索 search_box.submit # 检查页面内容,比如确认搜索结果出现 expect(driver.page_source.include?('搜索结果')).to eq(true) # 关闭浏览器窗口 driver.quit ``` 在上面的代码中,我们首先引入...
在Rails应用中,我们还可以使用`form_for`和其他Rails助手来处理表单提交,以及`render`和`redirect_to`来管理视图和路由。 最后,`Rails应用中MongoDB+MySQL杂交`的话题意味着在同一个应用中同时使用MongoDB和...
而`submit`方法则可以用来处理表单的提交,成功时会返回一个包含所有数据的新实例,即使这些数据可能来自于不同的模型。 关于Reform的安装,你只需在Gemfile中添加`gem 'reform'`,然后运行`bundle install`。在你...
在实际项目中,可能还需要处理搜索和分页的交互,比如通过表单提交搜索查询,并结合分页展示结果。可以创建一个简单的HTML表单: ```erb , method: :get do %> , params[:search], placeholder: '搜索用户名' %> ...
# 提交表单 @driver.find_element(xpath: '//input[@type="submit"]').click # 验证是否成功登录 assert_equal 'Welcome, valid_user!', @driver.title end def test_invalid_login # 填写错误的用户名和...
通过分析这个源码,你可以学习如何使用Rails创建控制器、模型和视图,如何定义路由,如何处理表单提交,如何使用ActiveRecord进行数据库操作,以及如何编写测试确保代码质量。此外,你还可以了解Rails的自动化工具,...
这个库使得开发者可以方便地发送HTTP请求并接收响应,从而执行各种网络操作,比如下载文件、提交表单或者,正如标题所示,实现短信验证码的注册和登录功能。在这个示例中,我们将探讨如何利用Net::HTTP库来构建一个...
你可以选择一个表单,填充字段,然后提交,就像在浏览器中操作一样: ```ruby form = page.forms.first form.field_with(name: 'username').value = 'my_username' form.field_with(name: 'password').value = 'my_...
Rails提供了丰富的助手方法,如`@products = Product.all`来获取所有产品,`params[:product]`来获取表单提交的数据。 视图是用户看到的部分,通常使用ERB(Embedded Ruby)模板语言编写。在`app/views/products`...
- **理解参数命名约定**:解释表单提交时参数的命名规则。 - **处理外部资源的表单**:指导如何处理来自外部资源的数据。 - **创建复杂表单**:介绍如何构建包含多个嵌套字段的复杂表单。 #### ActionController...
- **表单与用户输入处理**:教授如何在Rails应用中处理表单提交及用户输入数据。 - **测试与部署**:介绍如何对Rails应用进行单元测试和集成测试,以及部署到生产环境的方法。 - **进阶主题**:涵盖一些高级主题,如...
例如,在展示帖子详情的页面上,可以通过嵌入表单来让用户提交新评论: ```html <h2>Add a comment: ([@post, @post.comments.build]) do |f| %> <%= f.label :commenter %><br/> <%= f.label :body %>...
"thoughtbot"可能是指该框架的创建者或主要维护者的团队名称,而"e980d40"可能是Git仓库中的一个提交哈希值,代表了这个版本的特定更新或修复。 关于Administrate的知识点包括: 1. **安装**:使用RubyGems可以...