我必须管理一个包含属性" user_id"的表的表单。 我想让用户直接写下他想要邀请的人的姓名,而不是使用ID。
这是我的表
create_table "participations", :force => true do |t|
t.integer "event_id"
t.integer "user_id"
在我的参与模式中:
class Participation < ActiveRecord::Base
attr_accessible :event_id, :user_id,
belongs_to :event
belongs_to :user
end
用户模型:
class User < ActiveRecord::Base
attr_accessible :id, :name,
has_many :participations
end
答案 0 :(得分:0)
在表单中添加以下代码:
<script>
$(document).ready(function() {
$('#user_auto_complete').typeahead({
name: 'user',
local: <%= @users.blank? ? [].to_json : raw (@users.map {|user| user.name }.to_json(:only => [:name ])) %>
});
});
</script>
<form>
<input type="text" id="user_auto_complete" name="user_id" value='<%= (!@participant.user_id.blank?)? "#{@users.find(@participant.user_id).name}" : ""%>'>
</form>
希望这会对你有所帮助