[英]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.