Я стараюсь понять отношения, которые owner = create(:user, device_token: device_token)
должен owner: {device_token: device_token}
, я обычно использую user_id
для этой ассоциации. 2. Что такое метод device_token
в контроллере.Rails Ассоциации Rspec
describe 'POST /v1/events' do
it 'saves the address, lat, lon, name, and started_at date' do
date = Time.zone.now
device_token = '123abcd456xyz'
owner = create(:user, device_token: device_token)
post '/v1/events', {
address: '123 Example St.',
ended_at: date,
lat: 1.0,
lon: 1.0,
name: 'Fun Place!!',
started_at: date,
owner: {
device_token: device_token
}
}.to_json, { 'Content-Type' => 'application/json' }
event = Event.last
expect(response_json).to eq({ 'id' => event.id })
expect(event.address).to eq '123 Example St.'
expect(event.ended_at.to_i).to eq date.to_i
expect(event.lat).to eq 1.0
expect(event.lon).to eq 1.0
expect(event.name).to eq 'Fun Place!!'
expect(event.started_at.to_i).to eq date.to_i
expect(event.owner).to eq owner
end
конец
Controller Код:
def create
@event = Event.new(event_params)
if @event.save
render
end
end
private
def event_params
{
address: params[:address],
ended_at: params[:ended_at],
lat: params[:lat],
lon: params[:lon],
name: params[:name],
started_at: params[:started_at],
owner: user
}
end
def user
User.find_or_create_by(device_token: device_token)
end
def device_token
params[:owner].try(:[], :device_token)
end
end
Спасибо, сэр, а что такое метод «токена устройства»? Чтобы уточнить API для приложения iOS, он использует уникальный токен устройства, чтобы определить, что это правильное пользовательское и пользовательское устройство. Где оно вызывается в контроллере? Синтаксис также немного неясен в рамках метода. Понятно, что свойство params [owner] передается в метод «dev-token», но не уверен, что он перенастраивает. – ideahed