Rails:允许一个会话:一次固定

时间:2017-04-21 12:37:09

标签: ruby-on-rails ruby ruby-on-rails-3

我正在努力将公司的会话固定到列表的顶部。

公司应该能够将单个火花会话固定在列表的顶部。因为公司只能有一个固定会话,如果他们试图固定一个新会话,它应该保存新固定的会话并自动取消固定任何其他会话。

型号:

class SparkSession < ActiveRecord::Base
  def pinned!
    self.pinned = true
    self.save!
  end
end

控制器:

class SparkSessionsController < SubdomainsController
  def index
    @spark_sessions = @company.spark_sessions.where(is_archived: false).order_by_pinned_then_created
  end
  def pin
    load_spark_session
    @spark_session.pinned!
    flash[:notice] = 'Spark Session pinned'
    redirect_to action: :index
  rescue ActiveRecord::RecordInvalid
    flash.now[:error] = 'Failed to pin Spark Session'
    redirect_to action: :index
  end
end

查看:

%td= link_to 'Pin', pin_spark_session_path(tbl), method: :post

处理公司会话重复的最有效方法是什么?此外,在视图或方法中是否有一种方式更具特色的带有造型元素的固定柱?

1 个答案:

答案 0 :(得分:0)

我会在公司模型中添加pin_session方法。在那里,您可以执行分配并更新其余会话的固定属性