Rails中的RESTful帐户选择控制器?

时间:2015-02-14 05:20:38

标签: ruby-on-rails rest

在我的应用中,用户登录后,他被重定向到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是正确的吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,不建议使用会话。所以标准方法是创建一个before_action来设置account_id。 使用方式如下:

before_action :set_account, only: [:show]

并以私有方式创建函数:

 private
 def set_account
    account_id = params[:account_id]
 end

希望这有帮助。