Я новичок в рубине на рельсах. Я создаю приложение для форума. В дополнение к сообщению и комментариям по сообщениям, я хочу, чтобы частная система обмена сообщениями в приложении. Сообщение должно быть отправлено желаемому пользователю («только этот пользователь может видеть сообщение»). Для этого я сгенерировал модель Уведомление, имеющее сообщение в качестве столбца.
Уведомление Модельсистема уведомлений в приложении
class Notification < ActiveRecord::Base
belongs_to :user
end
Уведомление миграции
class CreateNotifications < ActiveRecord::Migration
def change
create_table :notifications do |t|
t.text :message
t.timestamps null: false
t.references :user, index: true, foreign_key: true
end
end
end
Notification контроллер
class NotificationsController < ApplicationController
def index
@notifications = Notification.all.order("created_at DESC")
end
def new
@notification = Notification.new
end
def create
@notification = Notification.new notification_params
if @notification.save
redirect_to(:controller => "posts", :action => "index")
else
render "new"
end
end
private
def notification_params
params.require(:notification).permit(:message, :user_id)
end
end
Уведомление # новый вид
<%= form_for(:notification, :url => {:action => "create"}) do |f| %>
<%= f.text_field(:message, :placeholder => "Enter your message") %>
<%= f.hidden_field(:user_id, :value => session[:user_id]) %>
<%= f.submit("send message") %>
<% end %>
Как я могу отправить целевой атрибут пользователя в форме? или есть другой способ для системы обмена сообщениями?
Пожалуйста, помогите мне. Я ценю ваши ответы. Заранее спасибо.
Я думаю, что если у вас есть 't.references: user' устанавливает' user_id', поэтому вы установите это дважды в своей миграции. –