Я следовал учебному пособию и нашел следующее, которое теперь есть в моей app/views/message/index.html.erb
<%= link_to 'Show Previous', '?m=all' %>
Я никогда раньше не видел '?m=all'
часть и пытаюсь понять, как она работает .
Соответствующий контроллер в app/controllers/messages_controller.rb
находится ниже
def index
@messages = @conversation.messages
if @messages.length > 10
@over_ten = true
@messages = @messages[-10..-1]
end
if params[:m]
@over_ten = false
@messages = @conversation.messages
end
if @messages.last
if @messages.last.user_id != current_user.id
@messages.last.read = true;
end
end
@message = @conversation.messages.new
end
Откуда params[:m]
получает параметры? Единственный путь, который он получает, - это вспомогательный путь conversation_messages_path(@conversation)
, а MessagesController имеет параметры
def message_params
params.require(:message).permit(:body, :user_id)
end
Кроме того, внутри контроллера (строка 13) ... @messages.last.read = true;
также нет имеет смысл для меня. Мой класс Message имеет логическое значение для его метода #read
, но он не сохраняет метод, и есть точка с запятой, которую я не вижу больше нигде в коде учебника.