Получение неопределенного метода `to_f'с использованием геокодера для захвата ip_address
Я новичок в Rails и строю домен, который содержит Post
класс где User
можете опубликовать фото Animal
и автоматический геотег будет связан с Post
основанный на User
IP-адрес и отображать карту Google (API). Основываясь на моем коде, я получаю эту ошибку при попытке создать Post
:
NoMethodError (undefined method `to_f' for #
<Geocoder::Result::IpinfoIo:0x007fba9fea7408>
Did you mean? to_s):
Вот мой Post
Модель:
class Post < ApplicationRecord
belongs_to :animal, required: false
belongs_to :user, required: false
geocoded_by :ip_address,
:latitude => :lat, :longitude => :lon
after_validation :geocode
has_one_attached :image
end
Мой контроллер:
class PostsController < ApplicationController
before_action :find_post, only: [:show, :edit, :update, :destroy]
def index
@posts = Post.all
end
def show
end
def new
@post = Post.new
end
def create
@post = Post.create(post_params) do |u|
u.ip_address = request.location
byebug
end
redirect_to post_path(@post)
end
def edit
@place = Place.find(params[:id])
end
def update
@post.update(post_params)
redirect_to post_path(@post)
end
def destroy
@post.delete(post_params)
redirect_to posts_path
end
private
def find_post
@post = Post.find(params[:id])
end
def post_params
params.require(:post).permit(:title, :description, :ip_address)
end
end
Я признаю, что я взял этот метод из другой публикации ОС. Я пытался просто захватить IP-адрес пользователей, когда они публикуют фотографию животного и отображают карту. Если у кого-то есть лучший способ реализовать это, пожалуйста, сообщите мне.