我正试图找出一种方法,使用Geocoder显示地图上两点之间的计算距离.我在我的表中有start_address和destination_address,我在视图中要求,我的模型如下所示:
class Ride < ActiveRecord::Base
geocoded_by :start_address
geocoded_by :destination_address
reverse_geocoded_by :latitude, :longitude
after_validation :geocode
end
Run Code Online (Sandbox Code Playgroud)
如何计算两点之间的距离并显示在视图中.不需要经度和纬度.
编辑:默认单位为"里程".要更改默认单位,请在ActiveRecord模型中设置它:
Venue.near([40.71, -100.23], 20, :units => :km)
Run Code Online (Sandbox Code Playgroud)
或者改变它:
# config/initializers/geocoder.rb
# set default units to kilometers:
:units => :km,
Run Code Online (Sandbox Code Playgroud)
编辑:我设法解决这个问题:
ride = Ride.new(params)
start_address_coordinates = Geocoder.coordinates(params[:start_address])
destination_coordinates = Geocoder.coordinates(params[:destination])
ride.distance = Geocoder::Calculations.distance_between(start_address_coordinates, destination_coordinates)
Run Code Online (Sandbox Code Playgroud) 我有一个与后端 Rails API 应用程序分开的 React 应用程序,我想介绍一个将前端应用程序置于维护模式的功能,但我想不出任何好主意。
我的客户想要一个按钮来点击,这样当他点击它时,应用程序就会进入维护模式。
由于这是一个 React 应用程序,显然 HTML 不是由任何后端服务器呈现(后端 API 仅用于向前端提供数据并作为管理面板),而是由 JS 呈现。我使用react-router并且我有许多路由来呈现不同的组件,这些路由又向后端发出多个 API 调用。我可以将后端置于维护模式并使前端应用程序对后端的响应做出反应(503 服务不可用),但这需要花费大量的精力和时间,因为我必须修改所有路由和传奇才能使它们做出反应适当地响应来自后端的响应。
我正在考虑创建一个单独的分支,只包含一个维护页面,并让客户随时部署该分支,而不是单击按钮。我试过使用 Express.js 中间件维护,但要么不起作用,要么我不知道如何使用它(我对此很陌生)。该应用程序在 Node.js 上的 Express 服务器上运行。我怎么解决这个问题?
我正在尝试将 Elm 0.18 升级到 0.19 并卡在最后一步,我不知道如何将 Elm 0.18 代码重写为 Elm 0.19。我遇到的一个问题是,作为mgold/elm-date-format": "1.5.0 <= v < 2.0.0项目依赖项之一的 package 尚未升级以支持 Elm 0.19,因此我决定将其替换为ryannhg/date-format。我还阅读了迁移文档Time并Date移至elm/time,但我不知道如何重写下面的代码。我对 Elm 一无所知,所以请放轻松,我的任务是在我的项目中将 Elm 从 0.18 升级到 0.19。不过,我正在努力学习它。
这是我现在拥有的代码,它在升级到 0.19 加上完整的堆栈跟踪后不起作用。我使用自动Elm 升级工具来升级 Elm
代码:
module Views.Note exposing (view)
import Data.Note.Author exposing (Author)
import Data.Note exposing (Note)
import Html exposing (Html, text, span, tr, td, p)
import Html.Attributes exposing (class)
import Date.Format exposing(format)
import Date
import Views.Note.Author
-- VIEW -- …Run Code Online (Sandbox Code Playgroud) 如何检查用户是否已向下滚动(或交叉)到浏览器中的特定元素(基于 id),以便我可以检查条件并在 Angular 7 中动态分配类名?
我一直挑战自己编写一个应用程序,该应用程序可从API获取数据并在各种组件中显示数据。我对VueJS很陌生。我使用VueResource来访问API,使用VueX来进行状态管理。我已经设置了商店,添加了动作,变异和created获取方法等,并且在组件中添加生命周期方法后,我立即收到错误消息:
ReferenceError: Vue is not defined
at Store.eval (eval at <anonymous> (build.js:1017), <anonymous>:11:3)
at Array.wrappedActionHandler (eval at <anonymous> (build.js:1338), <anonymous>:711:23)
at Store.dispatch (eval at <anonymous> (build.js:1338), <anonymous>:433:15)
...
Run Code Online (Sandbox Code Playgroud)
我的代码如下所示:
import Vue from 'vue'
import App from './App.vue'
import VueResource from 'vue-resource'
import store from './store/store'
Vue.use(VueResource);
new Vue({
el: '#app',
store,
render: h => h(App)
})
Run Code Online (Sandbox Code Playgroud)
import Vue from 'vue'
import Vuex from 'vuex'
import actions from './actions'
import mutations from './mutations'
import getters from './getters' …Run Code Online (Sandbox Code Playgroud) 我对 VueJS 还很陌生,所以请放轻松。我正在尝试使用 VueJS 实现购物车。我有一个按钮“添加到购物车”,addProductToCart(product)其中包含一个单击处理程序,该处理程序应将产品添加到购物车中,当我单击该按钮时,出现错误unknown local action type: addProductToCart, global type: cart/addProductToCart。我被卡住了,我不知道我可能做错了什么。
<button @click="addProductToCart(product)">Add to Cart</button>
<script>
import { mapActions } from 'vuex'
export default {
computed: {
//...
},
methods: mapActions('cart', [
'addProductToCart'
])
}
</script>
Run Code Online (Sandbox Code Playgroud)
import * as types from '../types';
const state = {
items: []
};
const getters = {
cartProducts: (state, getters, rootState) => {
return state.items.map(({ name, quantity }) => {
const product = rootState.products.all.find(product => product.name === …Run Code Online (Sandbox Code Playgroud) 我想清除上的用户数据logout,因此从auth模块I执行dispatch了在模块中定义的操作,ride但出现错误:
[vuex] unknown local action type: clearUserData, global type: auth/clearUserData
这是我的代码:
export const namespaced = true
export const mutations = {
clearAuthData(state){
state.apiToken = null
state.signedIn = false
}
}
export const actions = {
logout({ commit, dispatch }) {
commit('clearAuthData'))
dispatch('ride/clearUserData', { root: true })
}
}
Run Code Online (Sandbox Code Playgroud)
export const namespaced = true
export const state = {
data: []
}
export const mutations = {
CLEAR_USER_DATA(state){
state.data = [] …Run Code Online (Sandbox Code Playgroud) 我使用dpkg -i安装了DB Vizualizer,当我从仪表板启动DB Visualizer时出现错误"java.util.NoSuchElementException".
$ java -version
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
Run Code Online (Sandbox Code Playgroud)
环境变量(由安装程序自动设置):
DERBY_HOME=/usr/lib/jvm/java-8-oracle/db
J2REDIR=/usr/lib/jvm/java-8-oracle/jre
J2SDKDIR=/usr/lib/jvm/java-8-oracle
JAVA_HOME=/usr/lib/jvm/java-8-oracle
Run Code Online (Sandbox Code Playgroud)
我可以通过sudo dbvis从终端运行它但是这种运行它的方式不会保留我的连接和设置所以每次我再次启动它时我的所有连接和设置都消失了.
我该如何解决?
我的数据库中有一个名为“价格”的字段,它是一个小数字段,在我的 JSON API 响应中,它以字符串形式返回。
我想对字段应用一些验证,该字段在句号后最多允许 2 位数字,并发现如果我使用小数字段,我可以在数据库级别应用精度。
t.decimal "price", precision: 10, scale: 2
然后我想计算服务对象中的总价格:
class CurrentMonthRidesGenerator
def initialize(current_user)
@current_user = current_user
end
def call
user_current_month_rides_by_day.map do |date, rides_on_day|
{
day: formatted_date(date),
total_distance: total_distance(rides_on_day),
avg_ride: avg_ride(rides_on_day),
avg_price: avg_price(rides_on_day),
total_price: total_price(rides_on_day)
}
end
end
...
def total_price(rides)
rides.map(&:price).sum
end
end
Run Code Online (Sandbox Code Playgroud)
get '/current_month' do
Statistics::CurrentMonthRidesGenerator.new(current_user).call
end
Run Code Online (Sandbox Code Playgroud)
但在 API 响应中,该字段是一个字符串。
{
"day": "November, 8th",
"total_distance": "9km",
"avg_ride": "9km",
"avg_price": "100.0PLN",
"total_price": "100.0"
}
Run Code Online (Sandbox Code Playgroud)
我希望该字段在保存时返回,因为我需要在前端使用浮点/十进制数,然后进行其他计算。
为什么它是十进制字段时返回字符串?我该如何修复它?
vue.js ×3
vuex ×3
angular7 ×1
css ×1
dbvisualizer ×1
elm ×1
geocode ×1
html ×1
java ×1
reactjs ×1
sublimetext3 ×1
typescript ×1
ubuntu ×1
vue-resource ×1
vuejs2 ×1