0
我有一個自定義設計操作,它在幕後設置了一些屬性(lat
,lng
,city
和country
)。現在我正在使用強參數,問題是無法識別create方法內的這些屬性。只要它們在表單頁面中就可以,但我想避免這種情況,因爲我沒有給這些信息來填充,而是自動檢測。devise + rails 4 +註冊控制器內的強大參數
def create
build_resource(sign_up_params)
resource.lat = current_latitude
resource.lng = current_longitude
resource.city = current_city
resource.country = current_country_code
if resource.save
cookies.delete(:valid_subscription)
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_navigational_format?
sign_up(resource_name, resource)
respond_with resource, :location => after_sign_up_path_for(resource)
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?
expire_session_data_after_sign_in!
respond_with resource, :location => after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
respond_with resource
end
end
並在ApplicationController
我有這個
before_filter :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) do |u|
u.permit(:username, :email, :password, :password_confirmation, :birthdate, :sex, :interested_list, :lat, :lng)
end
devise_parameter_sanitizer.for(:account_update) do |u|
u.permit(:username, :email, :password, :password_confirmation, :lat, :lng)
end
end
任何想法,我做錯了什麼,以及如何到白名單這些屬性通過?
我使用devise 3.0.0和Rails 4.0.0。
devise_parameter_sanitizer.for(:create)? – AKovtunov
不,實際上,即使我編輯該方法,也不會排除表單中的那些。 – Martin