我是新来的铁轨。我有一个相对简单的问题。我定义了一个管理好友请求的控制器。在创建操作中,我检查其他用户是否已经向当前用户发送了好友请求。如果是这样,我跳过创建另一个朋友请求,并简单地执行接受已存在的朋友请求的逻辑。这里是我的代码:Ruby on Rails:我应该将此代码移入模型吗?如果是这样,最好的方法是什么?
class FriendRequestsController < ApplicationController
before_filter :authenticate_user!
def create
current_user_id = current_user.id;
recipient_id = params[:recipient_id].to_i;
# check if the other person has already sent a friend request
unless (existing_request = FriendRequest.find_by(
:sender_id => recipient_id,
:recipient_id => current_user_id)).nil?
accept(existing_request)
return redirect_to current_user
end
request = FriendRequest.new(:sender_id => current_user_id,
:recipient_id => recipient_id)
if request.save
flash[:notice] = "Sent friend request."
else
flash[:errors] = request.errors.full_messages
end
redirect_to users_path
end
如果上面的一些逻辑进入FriendRequest模型,而不是?如果是这样,它有多少?有没有一种好的方法可以将呼叫转移到FriendRequest.new和request.save中,同时仍然保持控制器中必要的控制程度?
*我的意思是“好”的是:标准,红宝石十岁上下,导轨十岁上下,很容易辨认,熟悉到多,普及,接受等
还有什么关于我的代码这是不好的做法?