[英]How to list all countries in select using country_select gem with 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文件加載了有關寶石中的國家(國家代碼,城市,州等)的所有信息?
我沒有任何線索,文檔稀疏。
所以我的問題很簡單:
simple_form
集合起作用。 Post
記錄相關聯? 謝謝。
simple_form的文檔與country_select 1.x一起使用。 要按照記錄使用simple_form,請在gemfile中限制country_select的版本:
gem 'country_select', '~> 1.0'
然后bundle update country_select
降級。
如果要改為使用country_select 2.x,則將使用國家/地區代碼,而不是國家/地區名稱。 您的表單幫助器看起來與simple_form文檔略有不同:
<%= f.input :country_code, as: :country, priority: ['BR'] %>
您確實需要在“帖子”模型中添加一列,以存儲用戶在數據庫中選擇的國家/地區。 數據類型將為字符串/ varchar。 您可以通過以下方式生成遷移:
rails generate migration AddCountryCodeToPost country_code:string
不是城市或州。
如果您希望用戶提供州或城市,則可以讓他們填寫文本字段並以字符串形式存儲提供的任何內容(您將在上面為模型添加這些列),或者構建自己的選擇/自動完成系統。 有一個state_select寶石,但是您需要使用javascript或管道形式將其與country_select手動集成。 我不知道有哪個寶石可以提供按州/國家/地區提供的城市名稱數據源,但很可能還有一些寶石。
有關country_select 1.x和country_select 2.x之間的區別的更多信息,請參閱升級指南 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.