Я пытаюсь выполнить, казалось бы, безобидную задачу передачи массива тегов в новую форму подписчика, основанную на том, на какой странице она отображается.
Моя таблица Subscriber
выглядит так в schema.rb
:
create_table "subscribers", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.string "phone"
t.string "email"
t.text "tags", default: [], array: true
t.text "admin_notes"
t.boolean "unsubscribe"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
Моя часть отображается следующим образом:
<%= render partial: "layouts/new_subscriber", locals: { tags: "buyer, LM-house-tour-checklist" } %>
, которая вызывает _new_subscriber.html.erb
часть:
<%= simple_form_for(@new_subscriber) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.label :first_name %>
<%= f.text_field :first_name, required: true, class: "form-control" %>
<%= f.label :last_name %>
<%= f.text_field :last_name, required: true, class: "form-control" %>
<%= f.label :phone %>
<%= f.text_field :phone, required: true, class: "form-control" %>
<%= f.label :email %>
<%= f.text_field :email, required: true, class: "form-control" %>
<%= f.hidden_field :tags, value: tags %>
</div>
<div class="form-actions text-center">
<%= f.submit "Get My Checklist", class: "btn" %>
</div>
<% end %>
Я тестировал с помощью ChromeИнспектор кода, который «покупатель, LM-house-tour-checklist» передается в скрытое значение поля.
Однако, когда я отправляю, он создает подписчика с атрибутом :tags
["uyer"]
.Это супер странно и необъяснимо для меня.
Другая информация:
- В моей
subscriber
модели ничего нет. @new_subscriber
определено в моем ApplicationController
с использованием before_action :new_subscriber
иdef new_subscriber @new_subscriber = Subscriber.new end
- Я попробовал метод, описанный здесь , но безрезультатно
Может кто-нибудь помочь мне сделать это "Railsiest" возможным способом?Это не кажется чем-то необычным, но я не могу заставить его работать должным образом.