我正在尝试在点击时添加一个唯一条目,以便用户可以接受他们已被邀请参加的活动。用户应该只能点击此链接一次。目前我有下面的代码,这似乎是添加条目,但我不认为它的最佳实践,再加上独特的ID似乎并没有被工作压力太大以及在点击时添加唯一条目
HAML
%li= link_to 'Add', availabilities_path(:availability => {:team_id => @event.team_id, :user_id => user, :event_id => @event.id, :unique_id => availability_unique_id(user,@event) }), :remote => true, :method => :post, :class => 'button tiny success'
模型
validates :unique_id, :presence => true, :uniqueness => true
独特的方法
def availability_unique_id(player,schedule)
Base64.encode64("#{player.to_s}_#{schedule.id.to_s}_#{schedule.team.id.to_s}")
end
,你可以从下面的查询看到独特的价值不被看出来
select * from availabilities where user_id = 41;
id | available | user_id | team_id | event_id | created_at | updated_at | unique_id | comment
----+-----------+---------+---------+----------+----------------------------+----------------------------+----------------------------------+---------
61 | | 41 | | | 2012-11-04 13:48:22.794214 | 2012-11-04 13:48:22.794214 | NDFfNDNfMQ== +|
| | | | | | | |
84 | | 41 | 1 | 75 | 2013-02-09 14:03:29.792374 | 2013-02-09 14:03:29.792374 | IzxVc2VyOjB4YWY3NTMxND5fNzVfMQ==+|
| | | | | | | |
85 | | 41 | 1 | 75 | 2013-02-09 14:06:04.131862 | 2013-02-09 14:06:04.131862 | IzxVc2VyOjB4YjJhODBiOD5fNzVfMQ==+|
| | | | | | | |
87 | | 41 | 1 | 75 | 2013-02-09 14:07:31.77788 | 2013-02-09 14:07:31.77788 | IzxVc2VyOjB4YjBhYjdiMD5fNzVfMQ==+|
| | | | | | | |
嗨保罗,我不明白你的意思。如果你仔细观察,表格会显示唯一的unique_id – jvnill 2013-02-10 02:21:32
嗨是的,它显示了它们,但它们并不是唯一的,我想通过在我的模型中使用唯一性来考虑它只允许使用一次该值,是不是这种情况?谢谢 – 2013-02-10 02:23:25
对不起,我看到他们是独一无二的,即时通讯试图实现的比用户,从一个事件只能出现在表中一次,什么是最好的方法来实现这个 – 2013-02-10 02:25:02