如何在rails中访问Form.select值

时间:2017-01-29 19:34:03

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2

我有这个表单,我希望用户选择他们想要发布的内容。要么是他们的名字,要么是匿名的。

所以这是我的形式:

- @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

1 个答案:

答案 0 :(得分:1)

我不确定你的整个方法是否正确。我会在你的Post(Confess ?!)模型中添加一个布尔字段。像:

rails g migration AddAnoncheckToConfess anonym:boolean

将该复选框放入您的视图中,并将其添加到控制器中允许的参数中。

然后,如果用户将匿名设置为true,您可以检查索引/节目视图:

<% if @confession.anonym == true %>
 Posted as anonymous
<% else %>
 <%= @confession.email %>
<% end %>

干杯!