2
私は緯度/経度情報と共にベンダーの詳細を保存できるアプリケーションを開発中です。それをジオコーダブルにするために、私はジオコーダ宝石をポスティスで使用しています。私は、ジオコーダの完全なドキュメントに従ってきました。しかし、新しいベンダーを作成している間、私は"未定義のメソッド` address = 'for "エラージオコーダーの宝石をレールに使用
NoMethodError in VendorsController#create
undefined method `address=' for #<Vendor:0x007faca1729a20> Did you
mean?addressline2=
マイレールvendors_controller.rb
class VendorsController < ApplicationController
before_action :set_vendor, only: [:show, :edit, :update, :destroy]
def index
@vendors = Vendor.all.limit(20)
end
def new
@vendor = Vendor.new
end
def create
@vendor = Vendor.new(vendor_params)
respond_to do |format|
if @vendor.save
format.html { redirect_to @vendor, notice: 'Vendor was
successfully created.' }
format.json { render :show, status: :created, location: @vendor }
else
format.html { render :new }
format.json { render json: @vendor.errors, status:
:unprocessable_entity }
end
end
end
def update
respond_to do |format|
if @vendor.update(vendor_params)
format.html { redirect_to @vendor, notice: 'Vendor was
successfully
updated.' }
format.json { render :show, status: :ok, location: @vendor }
else
format.html { render :edit }
format.json { render json: @vendor.errors, status:
:unprocessable_entity }
end
end
end
private
def set_vendor
@vendor = Vendor.find(params[:id])
end
def vendor_params
params.require(:vendor).permit(:name, :email, :phone_no, :addressline1,
:addressline2, :landmark,
:city, :state, :country, :pincode, :latitude, :longitude, :status)
end
end
マイvendor.rb
class Vendor < ActiveRecord::Base
has_many :vendor_products
has_many :products, through: :vendor_products
geocoded_by :full_path
after_validation :geocode
reverse_geocoded_by :latitude, :longitude
after_validation :reverse_geocode
def full_path
[addressline1, addressline2, landmark, city, state, country,
pincode].compact.join(', ')
end
end
マイベンダースキーマ
create_table "vendors", force: :cascade do |t|
t.string "name"
t.string "email"
t.string "phone_no"
t.string "addressline1"
t.string "addressline2"
t.string "landmark"
t.string "city"
t.string "state"
t.string "country"
t.float "latitude"
t.float "longitude"
t.boolean "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "pincode"
end
次のエラーを取得します
私はaddrを持っていませんコード内のどこでも使用されています。それでも、コンソールとフォームの両方から新しいベンダーを作成しようとすると、このエラーが表示されます。私はサーバーを再起動しようとしましたが、無駄な試みでした。私はレール初心者であり、丁寧な説明があれば本当に助かります。詳細情報が必要な場合はお知らせください
に
address
列を追加するには、マイグレーションを実行しますあなたは「アドレス」にご「full_path」メソッドの名前を変更しようとするかもしれません – Joeyjoejoe