Ruby on rails Rails表单,按用户名字段获取用户id
我有两种型号: 第一种模式:Ruby on rails Rails表单,按用户名字段获取用户id,ruby-on-rails,forms,Ruby On Rails,Forms,我有两种型号: 第一种模式: class Url < ActiveRecord::Base attr_accessible :code, :target, :user_id, :user belongs_to :user, :dependent => :destroy end 第二种模式: class User < ActiveRecord::Base attr_accessible :description, :status, :username has_m
class Url < ActiveRecord::Base
attr_accessible :code, :target, :user_id, :user
belongs_to :user, :dependent => :destroy
end
第二种模式:
class User < ActiveRecord::Base
attr_accessible :description, :status, :username
has_many :urls
validates :username,
:presence => true,
:uniqueness => true
def to_s
username
end
end
现在我有一个表单,用于创建url:
<%= form_for(@url) do |f| %>
<% if @url.errors.any? %>
<div id="error_explanation">
<h2><%= @url.errors.count %> Error(s):</h2>
<ul>
<% @url.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :user_id %><br />
<%= f.text_field :user_id %>
</div>
<div class="field">
<%= f.label :code %><br />
<%= f.text_field :code %>
</div>
<div class="field">
<%= f.label :target %><br />
<%= f.text_field :target %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
错误:
为了增加用户友好性,我想用字段用户名交换字段用户id。需要采取哪些步骤
谢谢 您可以使用帮助器显示包含用户的选择框:
<%= f.collection_select(:user_id, User.all, :id, :username, :prompt => true) %>
true)%>
这表现为:
<select name="url[user_id]">
<option value="">Please select</option>
<option value="1">One User</option>
<option value="2">Another User</option>
<option value="3">...</option>
</select>
请选择
一个用户
另一个用户
...
谢谢!这对我很有效。但是对于成千上万的用户来说,必须有一个更好的解决方案,或者?我会使用某种自动完成。只需谷歌搜索。
<%= f.collection_select(:user_id, User.all, :id, :username, :prompt => true) %>
<select name="url[user_id]">
<option value="">Please select</option>
<option value="1">One User</option>
<option value="2">Another User</option>
<option value="3">...</option>
</select>