如何使用 OpenStruct 在 rails 中创建实例变量
How do I create an instance variable in rails using OpenStruct
我想 return 方面以及我的控制器中的数据。我的代码是:
def index
@people = Person.for_branch(session[:branch_id]).for_interests(params[:interest_search]).search_query(params[:search_term]).for_lead_sources(params[:lead_source_search]).page params[:page]
@organization = Organization.find(session[:organization_id])
@facets.total_count = Person.all.count
@facets.filtered_count = @people.count
respond_to do |format|
format.html
format.json {render partial: 'table.html', locals: { people: @people, organization: @organization, facets: @facets}}
end
end
但是,我一直收到错误 total_count 未定义。
undefined method `total_count=' for nil:NilClass
我该如何解决这个问题?
我想你想使用 OpenStruct 变量。
require 'ostruct'
# ...
def index
@people = Person.for_branch(session[:branch_id]).for_interests(params[:interest_search]).search_query(params[:search_term]).for_lead_sources(params[:lead_source_search]).page params[:page]
@organization = Organization.find(session[:organization_id])
@facets = OpenStruct.new # initializing OpenStruct instance
@facets.total_count = Person.all.count
@facets.filtered_count = @people.count
respond_to do |format|
format.html
format.json {render partial: 'table.html', locals: { people: @people, organization: @organization, facets: @facets}}
end
end
请注意,使用普通的旧 Hash 更方便:
facets = {total_count: Person.all.count, filtered_count: @people.count}
respond_to do |format|
format.html
format.json {render partial: 'table.html', locals: { people: @people, organization: @organization, facets: facets}}
end
并像这样在您的视图中使用它:
total count is <%= facets[:total_count] %>
我想 return 方面以及我的控制器中的数据。我的代码是:
def index
@people = Person.for_branch(session[:branch_id]).for_interests(params[:interest_search]).search_query(params[:search_term]).for_lead_sources(params[:lead_source_search]).page params[:page]
@organization = Organization.find(session[:organization_id])
@facets.total_count = Person.all.count
@facets.filtered_count = @people.count
respond_to do |format|
format.html
format.json {render partial: 'table.html', locals: { people: @people, organization: @organization, facets: @facets}}
end
end
但是,我一直收到错误 total_count 未定义。
undefined method `total_count=' for nil:NilClass
我该如何解决这个问题?
我想你想使用 OpenStruct 变量。
require 'ostruct'
# ...
def index
@people = Person.for_branch(session[:branch_id]).for_interests(params[:interest_search]).search_query(params[:search_term]).for_lead_sources(params[:lead_source_search]).page params[:page]
@organization = Organization.find(session[:organization_id])
@facets = OpenStruct.new # initializing OpenStruct instance
@facets.total_count = Person.all.count
@facets.filtered_count = @people.count
respond_to do |format|
format.html
format.json {render partial: 'table.html', locals: { people: @people, organization: @organization, facets: @facets}}
end
end
请注意,使用普通的旧 Hash 更方便:
facets = {total_count: Person.all.count, filtered_count: @people.count}
respond_to do |format|
format.html
format.json {render partial: 'table.html', locals: { people: @people, organization: @organization, facets: facets}}
end
并像这样在您的视图中使用它:
total count is <%= facets[:total_count] %>