我有这个表单,我希望用户选择他们想要发布的内容。要么是他们的名字,要么是匿名的。
所以这是我的形式:
- @anonymous.each do |a|
=form_for @confession , html: {multipart: true} do |f|
=f.label :Confess
=f.text_area :confession , require: true
=f.label :post_as
=f.select(:postid,options_for_select([[@confession.amitian.fullname,@confession.amitian.fullname],[a.fullname,a.fullname]]))
=f.file_field :confessionimage
=f.submit 'Confess'
现在我有一个用户可以选择他们的名字或匿名发帖 因为我必须用匿名或current_user构建帖子混淆了如何在控制器中这样做这是我到目前为止所做的
def index
@amitian = Amitian.where(institute: current_amitian.institute) if amitian_signed_in?
@confessions = Confession.where(amitian_id: @amitian.ids).order('created_at DESC') if amitian_signed_in?
@anonymous = Amitian.where(email: 'anonymous@anonymous.com')
if #params[:postid] == 'Anonymous' # i need an if statement to check what user has selected .. can anyone help plz ?
@confession = @anonymous.confessions.build
else
@confession = current_amitian.confessions.build
end
end
提前thanx
答案 0 :(得分:1)
我不确定你的整个方法是否正确。我会在你的Post(Confess ?!)模型中添加一个布尔字段。像:
rails g migration AddAnoncheckToConfess anonym:boolean
将该复选框放入您的视图中,并将其添加到控制器中允许的参数中。
然后,如果用户将匿名设置为true,您可以检查索引/节目视图:
<% if @confession.anonym == true %>
Posted as anonymous
<% else %>
<%= @confession.email %>
<% end %>
干杯!