我有一个带有简单文本字段的表单,需要填写以下表单:
<%= 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选项,代码可以正常工作。在这种情况下,如何强制用户选择?谢谢
我正在关注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) 我是 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)