`

莫名其妙的问题1:rails2.2.2,失踪的:prompt。

阅读更多
莫名其妙的问题是指:代码无论怎么看都正常,但运行结果就是不对。经常会遇到些莫名其妙的问题,有时候确实是第三方的bug,有时候却是因为自己粗心,不管什么原因,都记在这里边吧,供以后参考,这是第一篇。

<%= f.select :clazz_id, [['cc','dd'],['aa','bb']], :prompt=>"abcdefg" %>

这写法哪有错了?那个:prompt的内容就是不出来。
生成的代码本该是:
<select id="student_clazz_id" name="student[clazz_id]"><option value="">abcdefg</option>
<option value="dd">cc</option>
<option value="bb">aa</option></select>
但结果却是:
<select id="student_clazz_id" name="student[clazz_id]"><option value="dd">cc</option>
<option value="bb">aa</option></select>
把相同的代码copy到以前写的滑板书上的depot例子里,就没有问题。抓狂ing...
分享到:
评论
8 楼 andyhu1007 2010-02-25  
把 :prompt 改成 :include_blank 试试,注意 :prompt 的定义中有句话话:

    * :prompt - set to true or a prompt string. When the select element doesn‘t have a value yet, this prepends an option with a generic prompt — "Please select" — or the given prompt string.

而:include_blank 始终会包括这个无值选项。
7 楼 netfork 2009-06-12  
yuan 写道

这个是从哪看出来的?我在文档上根本没查到FormBuilder#select方法。于是去看源代码,源代码里边调用了 objectify_options(options)这么个方法,但这个objectify_options是在哪定义的我就找不着了,NetBeans里边用ctrl+鼠标点击没有反应。。

不知道,纯粹是当时试验时的一点经验记忆。
呵呵,等你的深入研究成果啦~~~
6 楼 yuan 2009-06-12  

改了一下,果然能行。

netfork 写道

如果没有数据的话,option就有效

这个是从哪看出来的?我在文档上根本没查到FormBuilder#select方法。于是去看源代码,源代码里边调用了objectify_options(options)这么个方法,但这个objectify_options是在哪定义的我就找不着了,NetBeans里边用ctrl+鼠标点击没有反应。。
5 楼 netfork 2009-06-12  
yuan 写道

我这个student是从数据库中查出来的。


是不是因为是从数据库查出来的事呢?
就是student中有数据了。如果没有数据的话,option就有效,比如student.new,如果有数据的话就不行了呢?
我猜测是这样,能测一下吗?
4 楼 yuan 2009-06-12  
netfork 写道
哦,看来不是这么回事。跟student new不new有没有关系呢?depot中form中用的对象都会提前new下,你的new了吗?

我这个student是从数据库中查出来的。
3 楼 netfork 2009-06-12  
yuan 写道

netfork 写道可能跟form的定义有关系。form的形式不一样,option就有可能无效。你对比一下两处的form写法。我遇到过,不过后来改用在往数据集里 insert 一个0位置的记录了。问题就不求甚解的过去了。form的定义是指什么?depot里面的form是这样的:Ruby代码 &lt;%&nbsp;form_for&nbsp;:order,&nbsp;:url&nbsp;=&gt;&nbsp;{&nbsp;:action&nbsp;=&gt;&nbsp;:save_order&nbsp;}&nbsp;do&nbsp;|form|&nbsp;%&gt;&nbsp;&nbsp;&lt;% form_forrder, :url =&gt; { :action =&gt; :save_order } do |form| %&gt;我的form是这样的:Ruby代码 &lt;%&nbsp;form_for&nbsp;@student&nbsp;do&nbsp;|f|&nbsp;%&gt;&nbsp;&nbsp;&lt;% form_for @student do |f| %&gt;我刚刚把它改成这样试了一下:Ruby代码 &lt;%&nbsp;form_for&nbsp;:student,&nbsp;:url=&gt;{:action=&gt;:update}&nbsp;do&nbsp;|f|&nbsp;%&gt;&nbsp;&nbsp;&lt;% form_for :student, :url=&gt;{:action=&gt;:update} do |f| %&gt;问题仍然存在。我也用其它方法解决了,这个问题却留下来了……


哦,看来不是这么回事。
跟student new不new有没有关系呢?
depot中form中用的对象都会提前new下,你的new了吗?
2 楼 yuan 2009-06-12  
netfork 写道

可能跟form的定义有关系。form的形式不一样,option就有可能无效。你对比一下两处的form写法。我遇到过,不过后来改用在往数据集里 insert 一个0位置的记录了。问题就不求甚解的过去了。

form的定义是指什么?
depot里面的form是这样的:
<% form_for :order, :url => { :action => :save_order } do |form| %>

我的form是这样的:
<% form_for @student do |f| %>

我刚刚把它改成这样试了一下:
<% form_for :student, :url=>{:action=>:update} do |f| %>

问题仍然存在。
我也用其它方法解决了,这个问题却留下来了……
1 楼 netfork 2009-06-12  
可能跟form的定义有关系。
form的形式不一样,option就有可能无效。
你对比一下两处的form写法。

我遇到过,不过后来改用在往数据集里 insert 一个0位置的记录了。
问题就不求甚解的过去了。

相关推荐

    ruby on rails 2.2.2 参考手册

    1. **MVC架构**:Rails的核心设计模式是Model-View-Controller(MVC),分别处理数据、用户界面和应用程序逻辑。模型(Model)管理业务逻辑和数据,视图(View)负责展示数据,控制器(Controller)协调模型和视图的...

    rails-2.2.2.zip

    Rails 2.2.2 是一个古老的 Ruby on Rails 框架版本,它在2008年发布,标志着Web开发的一个重要里程碑。Ruby on Rails(简称Rails)是由David Heinemeier Hansson创建的开源Web应用程序框架,它遵循模型-视图-控制器...

    Rails2.2.2之windows环境搭建

    在本篇文章中,我们将深入探讨如何在Windows操作系统上搭建Rails 2.2.2的开发环境。Rails是Ruby on Rails的简称,它是一个基于Ruby语言的开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式。Rails ...

    rails 2.2.2 API

    Rails 2.2.2 API 是一个针对 Ruby on Rails 框架的版本 2.2.2 的接口文档,它是开发人员的重要参考资料,用于理解并有效地使用该框架的各项功能。Ruby on Rails(RoR)是由 David Heinemeier Hansson 创建的一个开源...

    基于Rails2.2.2的ajax

    标题 "基于Rails2.2.2的ajax" 涉及的是使用Rails 2.2.2框架中的AJAX(Asynchronous JavaScript and XML)技术。Rails是一个基于Ruby编程语言的开源Web开发框架,它允许开发者以简洁、高效的方式构建动态网站。在...

    基于Rails2.2.2的自建的CRUD项目视频

    【标题】"基于Rails2.2.2的自建的CRUD项目视频" 在这个项目中,我们将探讨如何使用Ruby on Rails 2.2.2版本构建一个基础的CRUD(创建、读取、更新和删除)应用。Ruby on Rails 是一个流行的开源Web应用程序框架,它...

    Ruby on Rails:Rails框架入门.docx

    Ruby on Rails:Rails框架入门.docx

    Ruby on Rails:Rails与JavaScript集成.docx

    Ruby on Rails:Rails与JavaScript集成.docx

    Ruby on Rails:Rails中的表单处理.docx

    Ruby on Rails:Rails中的表单处理.docx

    Ruby on Rails:Rails中的测试驱动开发.docx

    Ruby on Rails:Rails中的测试驱动开发.docx

    Ruby on Rails:Rails中的控制器编写.docx

    Ruby on Rails:Rails中的控制器编写.docx

    Ruby on Rails:Rails性能优化与缓存策略.docx

    Ruby on Rails:Rails性能优化与缓存策略.docx

    应用Rails进行敏捷Web开发中文第三版

    《应用Rails进行敏捷Web开发》中文第三版是针对Ruby on Rails框架的一本详尽指南,主要聚焦于Rails 2.2.2版本。Ruby on Rails(简称Rails)是一款基于Ruby编程语言的开源Web应用程序框架,它遵循“Don't Repeat ...

    java源码:Rails3消息队列系统 Sidekiq.zip

    java源码:Rails3消息队列系统 Sidekiq.zip

    swagger_yard-rails:Rails引擎为Swagger UI解析和呈现json

    SwaggerYard :: Rails SwaggerYard :: Rails gem是一个Rails引擎,旨在使用SwaggerYard解析您的Yardocs API控制器。 它将创建一个Swagger-UI投诉JSON,以通过安装SwaggerYard :: Rails :: Engine的位置提供。安装将...

    Rails上的API:使用Rails构建REST APIAPIs on Rails: Building REST APIs with Rails

    3. **社区活跃**:Rails拥有庞大的开发者社区,提供了丰富的插件和教程资源,遇到问题时可以迅速获得帮助。 4. **安全性**:Rails内置了一系列安全措施,比如防止SQL注入、XSS攻击等,有助于保护应用免受常见威胁。 ...

    foundation-rails:Rails基础

    基金会::铁路 Foundation :: Rails是一颗宝石,可以在即将到来的Rails项目中非常轻松地使用Foundation。安装将这些行添加到应用程序的Gemfile中: gem ' foundation-rails 'gem ' autoprefixer-rails ' 然后执行: ...

    rails_best_practices:Rails项目的代码度量工具

    rails_best_practices rails_best_practices是用于检查Rails代码质量的代码度量工具。 它支持以下ORM / ODM: 活动记录 蒙古型 mongomapper 以及以下模板引擎: erb 哈姆 减肥 拉布尔 rails_best_practices...

Global site tag (gtag.js) - Google Analytics