ruby-on-rails – Rails 3:验证关联并完美地向用户显示验证

ruby-on-rails – Rails 3:验证关联并完美地向用户显示验证,第1张

概述拳头,我使用的是rails 3.0.9和 ruby 1.8.7. 我需要一些帮助,因为我无法验证并在屏幕上完美地显示给我的用户. 该模型: class Book < ActiveRecord::Base belongs_to :genre validates_presence_of :title, :genre attr_accessible :genre_idend 表 拳头,我使用的是rails 3.0.9和 ruby 1.8.7.
我需要一些帮助,因为我无法验证并在屏幕上完美地显示给我的用户.

该模型:

class Book < ActiveRecord::Base    belongs_to :genre    valIDates_presence_of :Title,:genre    attr_accessible :genre_IDend

表格:

<div >    <%= f.label :genre %><br />    <%= f.collection_select(:genre_ID,Genre.all(:order => :name),:ID,:name,:prompt => 'Select') %></div>

当我发送表单为空白(默认情况下选择提示值)时,错误消息显示“类型不能为空”但在表单中我收到的HTML如:

<div >    <div >        <label for="book_genre">Genre</label>    </div>    <br>    <select name="book[genre_ID]" ID="book_genre_ID">        <option value="">Select</option>        <option value="2">Gramatic</option>        <option value="1">Terror</option>    </select></div>

我也需要div.fIEld_with_erros中的select字段,因为我在CSS中定义了红色背景.

之后我尝试将f.collection_select:genre_ID更改为:genre

现在我在div.fIEld_with_erros中找到了select字段.哦,是的,胜利,一会儿,直到我意识到验证总是指责错误,导轨不知道选择字段:流派是:genre_ID它寻找.

我的问题是:如何使:类型更改为:genre_ID验证?或者你们所有人都有更好的方法吗?

继续测试我尝试将标签和collection_select更改为genre_ID,验证工作完美,但没有使用div.fIEld_with_errors生成HTML所以我试图将:genre_ID放在valIDates_presence_of中,所以现在它看起来像:“valIDates_presence_of:Title,:genre,:genre_ID“.

很棒,但……

>当我提交表单并选择了默认提示值时
验证工作正常,但他们指责2个错误,一个到:流派和
另一个:genre_ID(¬¬)但HTML很好,标签和
select位于div.fIEld_with_erros中.
>如果我提交表格并从流派中选择一些值
    验证和HTML是好的.
>如果我提交表单但我已将某个选项的值更改为一个无效的
测试模型之间的验证是否真正起作用验证
工作正常,但HTML没有创建div.fIEld_with_erros.

有人可以帮帮我吗?
(是的,我的英语不是最好的.抱歉!)

解决方法 我已经创建了一些脚手架模型来测试它.我设置了2次迁移:

class CreateGenres < ActiveRecord::Migration  def change    create_table :genres do |t|      t.string :Title      t.timestamps    end  endendclass CreateBooks < ActiveRecord::Migration  def change    create_table :books do |t|      t.string :name      t.references :genre      t.timestamps    end  endend

我有以下形式:

<%= f.label :genre_ID %><%= f.collection_select(:genre_ID,Genre.all(:order => :Title),:Title,:prompt => 'Select') %>

在我的模型中:

class Genre < ActiveRecord::Base  attr_accessible :Title  has_many :booksendclass Book < ActiveRecord::Base  belongs_to :genre  valIDates_presence_of :name,:genre_ID  attr_accessible :name,:genre_IDend

验证然后按照我的预期工作……

总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails 3:验证关联并完美地向用户显示验证全部内容,希望文章能够帮你解决ruby-on-rails – Rails 3:验证关联并完美地向用户显示验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1268476.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存