小编Ail*_*lho的帖子

Rails 3:验证关联并向用户完美展示验证结果

首先,我正在使用 Rails 3.0.9 和 ruby​​ 1.8.7。\n我需要一些帮助,因为我无法验证并在屏幕上向用户完美显示它。

\n\n

该模型:

\n\n
class Book < ActiveRecord::Base\n    belongs_to :genre\n    validates_presence_of :title, :genre\n    attr_accessible :genre_id\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

表格:

\n\n
<div class="field">\n    <%= f.label :genre %><br />\n    <%= f.collection_select(:genre_id, Genre.all(:order => :name), :id, :name, :prompt => \'Select\') %>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我发送空白表单(默认选择提示值)时,错误消息完美地显示“流派不能为空”,但在表单中我收到如下 html:

\n\n
<div class="field">\n    <div class="field_with_errors">\n        <label for="book_genre">Genre</label>\n    </div>\n    <br>\n    <select name="book[genre_id]" id="book_genre_id">\n        <option value="">Select</option>\n        <option value="2">Gramatic</option>\n        <option value="1">Terror</option>\n    </select>\n</div>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我也需要 div.field_with_erros 内的选择字段,因为我在 CSS 中定义了红色背景。

\n\n

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

\n\n

现在我在 div.field_with_erros 中得到了选择字段。Owwww Yeahhh …

validation ruby-on-rails ruby-on-rails-3

5
推荐指数
1
解决办法
570
查看次数