Я новичок в 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-адрес пользователей, когда они публикуют фотографию животного и отображают карту.Если у кого-то есть лучший способ реализовать это, пожалуйста, сообщите мне.