У меня есть приложение rails, работающее вместе с API-интерфейсом rails, в config / initializers / constants.rb есть постоянное значение для DAYS_LIMIT
DAYS_LIMIT = 40
DEFAULT_PRICE = 1.29
, но теперь в приложении я добавил поле ввода, так чточто пользователь решит его DAYS_LIMIT.Поэтому я хочу получить это значение из базы данных внутри моделей API.
Я установил точки останова и вижу, что внутри контроллера API данные передаются из приложения, но не в модели.
отредактировано как запрошенный вопрос, это приложение React-on-Rails, вот код, в котором новое поле ввода сохраняется в базе данных (я удалил другие поля, чтобы вопрос выглядел короче)
export const saveChannel = (files) => {
return async (dispatch, getState) => {
const { channel } = getState();
const {rss_podcast_days} = channel;
const { image } = files;
const save = id ? updateChannel : createChannel;
const sub_required = subscription_required !== undefined ? subscription_required : false;
const formData = new FormData();
formData.append('channel[rss_podcast_days]', rss_podcast_days || '');
if (Object.keys(image).length) {
formData.append('channel[image]', image);
}
const channelId = await dispatch(save(formData, id));
dispatch(fetchChannel(id));
return id;
};
};
из контроллера приложения
podcast_list = RestClient.get("#{ENV['URL_API']}/api/#{@channel.id.as_json}/podcast/list")
@podcasts = JSON.parse(podcast_list.body)
@podcasts = @podcasts.sort.reverse.to_h
это от контроллера API, с которого данные передаются из приложения
def index
podcasts = @channel.podcasts.published.list(params[:page], params[:items_per_page], params[:ordered_in])
render json: Podcasts::Normalizer.normalize(podcasts, @channel.station.default_podcast_price)
end
и вот из модели API, которую я хочудля выборки данных вместо констант.
scope :by_days_limit, -> {with_tags.more_recent_than(Date.today - DAYS_LIMIT.days).ordered}
это должно занять сегодняшнюю дату минус значение (DAYS_LIMIT) из пользовательского ввода, но сейчас я получаю undefined local variable or method
, если я пытаюсь получить напрямую