簡體   English   中英

如何從頭開始使用country_select gem和simple_form?

[英]How do I get the country_select gem and simple_form to work from scratch?

我只想要一個簡單的國家/地區下拉列表,出於我的目的(即將所選國家/地區中的州包括在內)優先考慮。

實際上,我只想要1或2個國家。

我正在使用Simple_Form,他們的文檔說是為了獲得對此的訪問權限:

f.input :shipping_country, priority: [ "Brazil" ], collection: [ "Australia", "Brazil", "New Zealand"]

我只需要在我的Gemfile中包含它:

gem 'country_select'

但是我很困惑...我不必運行遷移就可以將國家/地區選擇存儲在我的Post模型中-我_form.html.erb針對哪個模型修改_form.html.erb

當我簡單地做:

<%= f.input :country, as: :country, collection: [ "Australia", "Brazil", "New Zealand"] %>

no country method on Post錯誤no country method on Post遇到了一個no country method on Post 我必須將其添加到我的Post.rb

attr_accessor :country

如果我的記憶正確地為我服務,那么由於“強參數”而不再需要在Rails 4中做對了嗎?

那行得通,但是現在collection:規范不起作用。 我仍然看到一長串國家。

請記住,我不必運行任何遷移即可修改Post.rb模型。 我不知道要添加哪些列。 我可以在“ Post模型中添加country, state, city ,還是要創建一個名為“ Country的新模型?

是否通過寶石中的YAML文件加載了有關寶石中的國家(國家代碼,城市,州等)的所有信息?

我沒有任何線索,文檔稀疏。

所以我的問題很簡單:

  1. 如何使這個simple_form集合起作用。
  2. 如何獲得國家/地區的其他屬性以表格形式顯示(例如州和/或城市)?
  3. 我是否必須在某個地方的表中提供其他數據?
  4. 如何將用戶選擇的國家和城市/州與我的Post記錄相關聯?

謝謝。

解決方案1:

simple_form的文檔與country_select 1.x一起使用。 要按照記錄使用simple_form,請在gemfile中限制country_select的版本:

gem 'country_select', '~> 1.0'

然后bundle update country_select降級。

解決方案2:

如果要改為使用country_select 2.x,則將使用國家/地區代碼,而不是國家/地區名稱。 您的表單幫助器看起來與simple_form文檔略有不同:

<%= f.input :country_code, as: :country, priority: ['BR'] %>

對於任何一種解決方案

確實需要在“帖子”模型中添加一列,以存儲用戶在數據庫中選擇的國家/地區。 數據類型將為字符串/ varchar。 您可以通過以下方式生成遷移:

rails generate migration AddCountryCodeToPost country_code:string

country_select只知道國家。

不是城市或州。

如果您希望用戶提供州或城市,則可以讓他們填寫文本字段並以字符串形式存儲提供的任何內容(您將在上面為模型添加這些列),或者構建自己的選擇/自動完成系統。 有一個state_select寶石,但是您需要使用javascript或管道形式將其與country_select手動集成。 我不知道有哪個寶石可以提供按州/國家/地區提供的城市名稱數據源,但很可能還有一些寶石。

注意

有關country_select 1.x和country_select 2.x之間的區別的更多信息,請參閱升級指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM