ユーザーは Ruby アプリで互いにメッセージを送信できます。表は次のとおりです。
t.string "content"
t.integer "from_id"
t.integer "reply_to_id"
t.boolean "read", :default => false
最近、ブール値の :read を追加しました。受信トレイのメッセージにリンクされたフォームがあります。彼らが「Mark Read」(フォーム経由で提供されるリンク) をクリックすると、:read => true にトグルします。
私は現在これを達成することができません。これが私の現在のセットアップです。
_mark_read.html.erb
<%= form_for(:message, :mark_read => {read: true}) do |f| %>
<div><%= f.hidden_field :read %></div>
<%= f.submit "Mark Read", class: "btn-link" %>
<% end %>
Class MessagesController < ApplicationController
def mark_read
@message = current_user.messages.build
@message.toggle!(:read)
end
config/routes.rb
match '/mark_read' => 'messages#mark_read', :via => :post, :as => :mark_read
「Mark Read」をクリックすると、デバッグ情報が表示されます。
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
utf8: ✓
authenticity_token: ---
message: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
read: 'false'
commit: Mark Read
controller: static_pages
action: connect
コントローラーを使用していないこともわかります...それでもそうです。正しく設定できていないと思います。
これをどのように設定する必要があるかについてのアドバイスをいただければ幸いです。