У меня есть модель PrivateMessage, чье поле: to может содержать несколько идентификаторов получателей.
create_table :private_messages do |t|
t.integer :author_id
t.string :subject
t.text :body
t.text :to
t.timestamps
Я использую check_box_tag, чтобы позволить отправителю выбрать получателей, которым он хочет отправить:
<% for friend in User.find(:all) %>
<%=raw check_box_tag "private_message[to][]", friend.id, @private_message.to.include?(friend.id)%>
<%= friend.username %><br />
<% end %>
Когда пользователь выбирает несколько получателей, параметры передаются ОК:
tarted POST "/sent" for 127.0.0.1 at 2011-09-04 11:02:26 -0400
Processing by SentController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"XXX", "private_message"=>{"to"=>["8", "9", "10"], "subject"=>"test"}, "commit"=>"Send"}
Однако, когда строка вставляется в мою таблицу, она автоматически экранируется следующим образом:
SQL (0.4ms) INSERT INTO "private_messages" ("author_id", "body", "created_at", "subject", "to", "updated_at") VALUES (10, '2011-09-04 15:20:47.009706', 'test', '---
- "8"
- "9"
- "10"
', '2011-09-04 15:20:47.009706')
Когда я проверяю запись на моей консоли:
ruby-1.9.2-p180 :010 > PrivateMessage.last.to
=> "--- \n- \"8\"\n- \"9\"\n- \"10\"\n"
У меня вопрос: как мне записать: как «7», «8», «10»?
Большое спасибо за помощь!
P / S: Я следую инструкциям здесь: http://www.novawave.net/public/rails_messaging_tutorial.html