ruby-on-rails - Ruby on Rails - 如何让非登录用户在我的帖子上留言?
问题描述
我有帖子模型
在我的 post_controller 上
before_action :authenticate_user!, except: [:show]
所以来宾(非登录用户)可以看到我的帖子。
我的问题是
如何让访客(未登录用户)在我的帖子中留言?
例如: 假设消息模型有这些参数:
name:string
phone:string
email:String
text:text
在消息视图中我想要这样的东西:
<div>
<%= name %>
<%= phone %>
<%= email %>
<%= text %>
</div>
有什么建议吗?谢谢帮助!
解决方案
1-如果消息是用于发布的,那么消息模型应该有post_id
消息.rb
belongs_to :post
2- 在posts#show
行动中定义新的message
@message = Message.new
3 - 在您的每个帖子下方应该有一个消息表格
<%= form_for @message do |f|%>
<%= f.text_field: name %>
<%= f.email_field: email %>
<%= f.text_field: phone %>
<%= f.text_area: text %>
<%= f.hidden_field: post_id, value: @post.id %>
<%= f.submit: "Submit Message"%>
<% end %>
4进messages_controller.rb
before_action :authetnicate_user!, only: []
def create
message = Message.new(message_params)
if message.save
#
else
#
end
end
private
def message_params
params.require(:message).permit(:name,:email,:phone,:text,:post_id,)
end
推荐阅读
- html - mathjax中的html标签
- ruby-on-rails - 3 个表相互交互,但患者 ID 返回 nil
- javascript - 在生产中在 catch 块中放入什么
- javascript - JavaScript 字母排序不是对所有值进行排序
- dictionary - Data.Map中的map函数与fromList函数的连接
- postgresql - 使用“AT TIME ZONE”将“timestamptz”格式转换为“timestamp”时如何在 MIDNIGHT 显示时间
- sql - Can an indexed view be created on system tables?
- html - 部分 ID 禁用引导导航栏下拉菜单 - 为什么?
- c# - 如何在 RESTful Web 应用程序中添加数据库?
- scala - 定义名称中带有空格的方法