Rails 4 - 国家选择

时间:2015-12-29 22:57:34

标签: ruby-on-rails simple-form country-codes

我正在使用Rails 4制作应用程序。

我使用gem'country_select'作为国家/地区列表。

此表单中的最后一个问题是选择一个国家/地区的选择字段。

列表填写正常。但是,当我按表单上的提交时,我会收到一条错误消息,指出国家不能为空。

我在地址模型中进行了验证:

validates_presence_of :street_number, :street, :zip, :country 

但是我看不出表单有什么问题让select函数不选择国家。

            <%= simple_form_for(@address) do |f| %>
            <%= f.error_notification %>

            <div class="form-inputs">
                <div class="row">
                    <div class="col-xs-3">
                        <%= f.input :unit %>
                    </div>
                    <div class="col-xs-3 col-xs-offset-1">
                        <%= f.input :street_number %>
                    </div>
                    <div class="col-xs-3 col-xs-offset-1">
                        <%= f.input :street %>
                    </div>
                </div>

                <div class="row">
                    <div class="col-xs-3">
                        <%= f.input :building %>
                    </div>
                    <div class="col-xs-3 col-xs-offset-1">
                        <%= f.input :city %>
                    </div>
                    <div class="col-xs-3 col-xs-offset-1">
                        <%= f.input :region %>
                    </div>

                </div>

                <div class="row">
                    <div class="col-xs-3">
                        <%= f.input :zip %>
                    </div>
                    <div class="col-xs-3 col-xs-offset-1">
                        <%= f.input :country, priority: [ "Australia", "New Zealand", "United Kingdom" ] %>
                    </div>

从MarsAtomic那里得到以下建议,我的哈希表明国家选择在创建哈希中:

--- !ruby/hash:ActionController::Parameters
utf8: "✓"
authenticity_token: Jax0qIsyVj2V5CeK01ee79Ctmmmm7nqob8FRwS7KDIgGnRaNDR8A==
address: !ruby/hash:ActionController::Parameters
  unit: ''
  street_number: '23'
  street: asdf
  building: ''
  city: asdf
  region: pdf
  zip: '2000'
  country: NZ
  main_address: '0'
  project_offsite: '0'
commit: Create Address
controller: addresses
action: create          

我的控制器有这个创建方法:

def create
    @address = Address.new(address_params)
    authorize @address


    respond_to do |format|
      if @address.save
        format.html { redirect_to @address, notice: 'Address was successfully created.' }
        format.json { render :show, status: :created, location: @address }
      else
        format.html { render :new }
        format.json { render json: @address.errors, status: :unprocessable_entity }
      end
    end
  end

谢谢!我是个傻瓜。在控制器中他强大的参数让我拼错了国家。对不起大家。谢谢你的帮助。

0 个答案:

没有答案