我使用活动脚手架
表中有很多数据,所以实际上就是这种情况下的分页。
关于公司的表打印数据,如果我检查一个 - 所以我们在表中只看到这一个。用户检查 - 保存在会话变量中。
偶尔我突然去其他页面看到有关其他公司的数据。
似乎会话丢失或更改
任何人都有同样的问题。
class TLForConfirmController < ApplicationController
layout 'application'
before_action :update_as_config
active_scaffold :tl do |config|
#config.sti_children = :tl_change
FIRST_PART_COLUMNS= [:id_org_by_year,:organization_name, :start_date,:end_date]
SECOND_PART_FIRST_HALF_COLUMNS=[:tl_short_type_first_half,:main_subject_first_half,:day_of_week_first_half]
SECOND_PART_SECOND_HALF_COLUMNS=[:tl_short_type,:main_subject,:day_of_week]
config.list.per_page = 100
config.columns[:id_org_by_year].set_link(link_for_association(config.columns[:tl_changes]))
end
def self.reflect_on_all_associations
TL.reflect_on_all_associations
end
def conditions_for_collection // here attached session[:act_organization] to question
sql_filter=''
if !session[:tl_status].blank? and session[:tl_status].to_s.to_i!=Activity::STATUS_DELETED and session[:act_id].to_i==0
sql_filter=' activity_status_id in ('+ session[:tl_status].join(',')+ ')'
end
# logger.info " check session ----------> " + session[:act_organization].inspect
if !session[:act_organization].blank? and session[:act_organization][0]>0
unless sql_filter.empty?
sql_filter=sql_filter+' and '
end
sql_filter=sql_filter+'organization_id in ( '+(Array session[:act_organization]).to_a.join(',')+ ')'
end
unless sql_filter.empty?
['('+sql_filter+')']
end
end
end
list_to_confirm.html.erb:
<%if @sql_filter.empty?%>
<%= render :active_scaffold => 'tl_for_confirm',
:params => {:file_time => Time.now.strftime("%Y%m%d%H%M%S")},:locals => {:file_time1 => Time.now.strftime("%Y%m%d%H%M%S")} %>
<%else%>
<%= render :active_scaffold => 'tl_for_confirm', :conditions => @sql_filter , :params => {:file_time => Time.now.strftime("%Y%m%d%H%M%S")} %>
<% end %>
Controller:tl_controller.rb
TLController< ApplicationController
def search_results // here code sends after Submit for define sesions
if request.post?
if !params[:search][:organization_id].blank?
session[:act_organization]=get_array_codes_for_search(params[:search][:organization_id].to_a.collect { |item| item.to_i })
logger.info " search_results " + session[:act_organization].inspect
else
session[:act_organization]=nil
end
end
end
def list_to_confirm
end
end
def get_array_codes_for_search(arr_code)
rez=[]
unless arr_code.blank?
if arr_code[0].kind_of?(Array)
arr_code = arr_code[0]
end
if arr_code.kind_of?(String)
arr_code = (Array arr_code)
end
unless arr_code.size==0
arr_code.delete_if{|c| c.to_i<=0||c.to_s.empty? }
res = arr_code.map{|i| i.to_i}
end
end
return res
end
PS
Rails.application.config.session_store :active_record_store, :key => '_my_app_session'
此文件包含用于简化Rails 5.0升级的迁移选项。
阅读Rails 5.0发行说明,了解有关每个选项的更多信息。
启用每个表单的CSRF令牌。以前的版本都是假的。
Rails.application.config.action_controller.per_form_csrf_tokens = true
启用原始检查CSRF缓解。以前的版本有误。 Rails.application.config.action_controller.forgery_protection_origin_check = true
在调用to_time
时,让Ruby 2.4保留接收者的时区。
以前的版本都是假的。
ActiveSupport.to_time_preserves_timezone = true
默认情况下需要belongs_to
个关联。以前的版本都是假的。
Rails.application.config.active_record.belongs_to_required_by_default = true
当回调返回false时,不要暂停回调链。以前的版本都是真的。
ActiveSupport.halt_callback_chains_on_return_false = false
配置SSL选项以启用具有子域的HSTS。以前的版本都是假的。
Rails.application.config.ssl_options = { hsts: { subdomains: true } }