在我的应用中,用户登录后,他被重定向到AccountsSelection控制器。在那里,我有一个索引操作,基本上将获得用户可以使用的所有潜在帐户,并在索引视图中显示它们。
def index
@accounts = current_user.eligible_accounts
end
在该页面中,用户可以单击其中一个帐户,这应该转到控制器中的一个操作,这将在会话中设置:
def show
session[:selected_account] = params[:account_id]
redirect_to account_path
end
现在我已经将该操作设置为显示(因此选择该帐户正在执行GET请求,但我不确定这是否是一种RESTful方式来接近此)。从我的观点来看,这不是PUT / POST,因为我没有更改任何资源或创建任何资源,但是使用show动作来设置会话似乎很奇怪。
处理此问题的正确方法是什么?使用show是正确的吗?
答案 0 :(得分:0)
在这种情况下,不建议使用会话。所以标准方法是创建一个before_action来设置account_id。 使用方式如下:
before_action :set_account, only: [:show]
并以私有方式创建函数:
private
def set_account
account_id = params[:account_id]
end
希望这有帮助。