本文共 816 字,大约阅读时间需要 2 分钟。
用户没有登录时游客评论,需要游客输入用户名和评论内容;当用户已登录时,读取session获取用户名,隐藏输入用户名的表达,用户直接发表评论。
用户评论代码:Add a comment:
<%= form_for([@book, @book.comments.build]) do |f| %><%= f.label :commenter %>
<%= f.text_field :commenter %><%= f.label :body %>
<%= f.text_area :body %><%= f.submit %>
<% end %>
这里写代码片
设置表达默认值参考了这篇博客:
因此用户登录后设置默认值:<%= f.text_field :commenter,:value =>session['loginedUser'] %>
f.text_field改成f.hidden_field
Add a comment:
<%= form_for([@book, @book.comments.build]) do |f| %><% if @user!=nil %> <%= f.hidden_field :commenter,:value =>session['loginedUser'] %> <% else %> <%= f.label :commenter %>
<%= f.text_field :commenter %> <% end %><%= f.label :body %>
<%= f.text_area :body %><%= f.submit %>
<% end %>