Прошу прощения за любую мою терминологию, если она выключена. В моей модели я пытаюсь определить метод, который будет искать 2 столбца, если другой столбец (логический) не является истинным.
class BusinessStore < ActiveRecord::Base
attr_accessible :business_name, :address, :online_store, :website
def store
"#{business_name} - #{address}"
end
end
:business_name
- это виртуальный атрибут, :online_store
- это логический столбец.
Я хочу взять :online_store
и создать метод, подобный этому:
def store
"#{business_name} - #{address}" unless business_store.online_store = true
end
Таким образом, он не должен показывать бизнес-магазины, которые помечены как истинные для того, чтобы быть онлайн-магазинами, потому что я ищу только розничные магазины; магазины с адресами. Вот моя модель контроллера. Просто для пояснения, BusinessStore.where
должен пропустить поиск магазинов с online_store = true
class BusinessStoresController < ApplicationController
def index
@business_stores = BusinessStore.all
@business_stores = BusinessStore.where("address like ?", "%#{params[:q]}%")
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @business_stores }
format.json { render :json => @business_stores.collect{|b|{:id => b.id, :name => b.store } } }
end
end
end
Это не работает, потому что мой business_stores.json получает ошибку NameE:
http://localhost:3000/business_stores.json
NameError in BusinessStoresController#index
undefined local variable or method `business_store' for...
Как вы это определили?