Rails,Devise:如果用户使用用户ID登录create,则不使用

时间:2015-02-04 12:33:09

标签: ruby-on-rails ruby devise

我有一个流控制器,我正在使用Devise。用户可以创建流(或者流将具有数据库中用户的id)或没有帐户(比其客户流所说)。目前我有以下创建方法:

def create
  @stream = current_user.streams.build(params[:name])
  if @stream.valid?
    @stream.save
    redirect_to c_path(@stream.name)
    flash[:notice] = "blabla"
  else
    redirect_to root_path
  end
end

但是这对客人来说不起作用,因为我使用的是current_user。现在我的计划是创建一个if else(如果登录使用current_user,否则不是)。

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

Devise有一个user_signed_in?方法。所以你可以这样做:

if user_signed_in?
  @stream = current_user.streams.build(params[:name])
else
  @stream = Stream.new(params[:name])
end