【发布时间】:2011-09-07 15:48:44
【问题描述】:
我有一个控制器,我在其中做一些时髦的选择。我有一个属于一个用户的邀请表,并且有一个用户。
销毁邀请时,我希望“has_one 用户”进行销毁,在我的控制器中,我首先收到一组邀请用户的邀请:
def destroy
@invitations = Invitation.find_by_recipient_email(current_user.email)
从这个@invitations 数组中,我想使用 :id 参数进行查找。有没有办法做这样的事情:
@invitations = Invitation.find_by_recipient_email(current_user.email)
@invitation = @invitations.find(params[:id])
这样我可以将用户可以访问的邀请限制为他们被邀请的邀请(使用 current_user 方法),然后选择特定的邀请。我目前不能这样做,因为 .find 不适用于数组。
感谢您的帮助/指点。
编辑:对不起,我让帖子有点混乱,这里有更多信息:
这是我现在的整个销毁方法,我只想删除一条记录:
def destroy
@invitations = Invitation.find_by_recipient_email(current_user.email)
@invitation = @invitations.find(params[:id])
if @invitation.destroy
redirect_to invitations_path, :notice => "Declined invitation"
else
redirect_to :back
end
end
我的邀请对象如下所示:
Invitation(id: integer, list_id: integer, sender_id: integer, recipient_email: string, created_at: datetime, updated_at: datetime)
其中 send_id 和 recipient_email 是两个不同的用户。
我的邀请.rb:
belongs_to :sender, :class_name => 'User'
has_one :recipient, :class_name => 'User'
也许问题是我会调用类似 current_users.invitations.find(params[:id]) 并重做我的邀请模型?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3