簡體   English   中英

如何使用表單字段RAILS 4允許強參數值數組

[英]How to permit array of strong parameter value with form fields RAILS 4

我有一個邀請系統,其中有一個電子郵件字段,人們可以向其中添加新的用戶電子郵件。

目前,它接受1封電子郵件,我希望允許用戶動態添加新的其他電子郵件字段,因此在提交時,我有一個由rails strong param允許的電子郵件地址數組

這是視圖模板

<%= form_for @invite, :url => landlord_property_invites_path(@landlord.id,@property.id) do |f| %>
    <div class="form-group">
      <%= f.label :email %>
      <%= f.email_field :email ,class: "form-control"%>
    </div>
    <span class="btn btn-default btn-addon">Add another tenant</span>
    <%= f.submit 'Send Email',class:"btn btn-success" %>
<% end %>

這是我的邀請參數

  private
  def invite_params
    params.require(:invite).permit(:email)
  end

我想做的是,當他們單擊add another tenant

然后表格看起來像這樣

<%= form_for @invite, :url => landlord_property_invites_path(@landlord.id,@property.id) do |f| %>
    <div class="form-group">
      <%= f.label :email %>
      <%= f.email_field :email ,class: "form-control"%>
    </div>     
    <div class="form-group">
      <%= f.label :email %>
      <%= f.email_field :email ,class: "form-control"%>
    </div>
    <span class="btn btn-default btn-addon">Add another tenant</span>
    <%= f.submit 'Send Email',class:"btn btn-success" %>
<% end %>

因此,基本上:email參數將以這種形式映射到所有字段的數組,

:email = {useremail@gmail.com, useremail2@gmail.com}

然后我就可以為控制器中的for each循環分別進行操作

目前,params接受email字段中的最后一個值,而忽略其余的值

我努力了

    params.require(:invite).permit(email:[]) and
    params.require(:invite).permit(:email => [])

但它仍然做同樣的事情。

因此,我將如何允許params接受傳入的值的哈希值?

我想到了,

這就是我要放入視圖模板的內容

    <%= email_field_tag 'email[]' %>
    <%= email_field_tag 'email[]' %>

它必須是不帶f的標簽。 賓語

我允許通過

  def invite_params
   params.permit(email:[])
 end

並以此訪問

    @emails = invite_params['email']

這會給我

@email = ['email1@gmail.com,email2@gmail.com']

這是我使用的鏈接

在表單中使用相同的輸入字段保存值

暫無
暫無

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

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