小编Jan*_*Jan的帖子

collection_select类型字段上的必填字段

我有一个带有简单文本字段的表单,需要填写以下表单:

<%= f.text_field :email, :required => true %>
Run Code Online (Sandbox Code Playgroud)

下一个字段是collection_select类型,我要在其中强制用户选择一个选项。我试过了:

<%= f.collection_select(:list_ids, List.where(user_id: current_user), :id, :name, {}, {multiple: true}), :required => true %>
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

syntax error, unexpected ',', expecting ')' ..., :name, {}, {multiple: true}), :required => true );@output_... ... ^
Run Code Online (Sandbox Code Playgroud)

没有:required => true选项,代码可以正常工作。在这种情况下,如何强制用户选择?谢谢

forms field ruby-on-rails form-for ruby-on-rails-4

2
推荐指数
1
解决办法
1639
查看次数

RoR rspec未通过<top(required)>中的错误'block(2级)测试失败

我正在关注Hartls Rails教程,我在第6章结束时陷入困境.突然之间,我的一些测试失败并出现同样的错误:

C:\Users\JMA\Projekte\sampleapp>bundle exec rspec spec/
.F......F...FFF....

Failures:

  1) User
     Failure/Error: it { should respond_to(:passwors_confirmation)}
       expected #<User id: nil, name: "Example User", email: "user@example.com",
 created_at: nil, updated_at: nil, password_digest: "$2a$04$OMnlZgC9yWhxbQizs8MG
9uPMCd8LmMlO5MZzkuQyM8it..."> to respond to :passwors_confirmation
     # ./spec/models/user_spec.rb:16:in `block (2 levels) in <top (required)>'

  2) User when name is not present when email format is valid should be valid
     Failure/Error: expect(@user).to be_valid
       expected #<User id: nil, name: " ", email: "user@foo.COM", created_at: ni
l, updated_at: nil, password_digest: "$2a$04$PtGxi4DjJWFezLFYy1jW5eaI7C/xxyBLXAG
zPepflo8r..."> to be …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails ruby-on-rails-3

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

连接两个模型belongs_to/has_many并通过表单中的下拉菜单进行选择

我是 Rails 初学者,我面临一个基本问题。我找到了几个解决方案,但没有一个能够完全描述我的问题。我有两个模型:联系人和组

Group has_many :contacts
Contact belongs_to :group
Run Code Online (Sandbox Code Playgroud)

(通过devise还有第三种用户模型)

创建新联系人时,我希望用户能够通过选择选项(如下拉字段)选择该联系人所属的组。

我在联系人表中添加了一个 :group_id 索引:

class AddGroupIdToContacts < ActiveRecord::Migration
  def change
    add_column :contacts, :group_id, :integer
  end
end
Run Code Online (Sandbox Code Playgroud)

在 view/contacts/_form 中,我使用了 collection_select 选项来输出显示可用组的下拉字段:

<%= form_for(@contact) do |f| %>
  <% if @contact.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@contact.errors.count, "error") %> prohibited this contact from being saved:</h2>

      <ul>
      <% @contact.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  ...

  <div class="field">
    <%= f.label :group_id %><br>
    <%= f.collection_select(:group_id, Group.all, :id, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails key models rails-models

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