내 애플 리케이션에서 지오 코더를 작동 시키려고합니다. 나는 자신의 위치를 지오 코딩 사용자의 우편 번호를 사용하려고하고 나는 새로운 가입 제출에이 오류로 실행했습니다 : I 인증을 위해 고안를 사용하고정의되지 않은 메소드`latitude = '지오 코더 레일
NoMethodError in Devise::RegistrationsController#create
undefined method `latitude='
을, 여기에 :zip
내 위생의 속성과 관련이 있습니다. 또한 아래에 내 사용자 가입 양식이 있습니다. 여기
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:zip, :email, :password, :password_confirmation) }
end
end
내 관련 사용자 모델 :
class User < ActiveRecord::Base
validates :zip, presence: true
geocoded_by :zip
after_validation :geocode
end
내 가입 양식 :
<h2>Sign up</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %>
<%= f.email_field :email, :autofocus => true %></div>
<div><%= f.label :zip %>
<%= f.text_field :zip %> </div>
<div><%= f.label :password %>
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %></div>
<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render "devise/shared/links" %>
내가 왜이 오류를 받고 있어요에 어떤 생각? 위도와 경도에 대한 가입 양식에 필드를 포함해야합니까? 미리 감사드립니다!
편집
여기 내 사용자 테이블에 대한 스키마입니다 :
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.integer :zip
t.float :latitude
t.float :longitude
## Database authenticatable
t.string :email, :null => false, :default => ""
t.string :encrypted_password, :null => false, :default => ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, :default => 0
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
end
end
end
(db/schema.rb 파일의) users 테이블에 대한 스키마를 붙여 넣으십시오. Geocoder gem은 아직 존재하지 않는이 컬럼을 갱신하려고합니다. 마이그레이션을 사용하여 마이그레이션을 추가 할 수 있습니다. –
스키마가 추가되었습니다. 이 마이그레이션을 실행하기 전에 DB를 다시 만들었습니다. – settheline