我正在尝试创建一个表单,用户可以使用这样的用户名正常发布 - >正常
=form_for @confession , html: {multipart: true} do |f|
=f.label :Confess
=f.text_area :confession , require: true
=f.file_field :confessionimage
=f.select (:id,options_for_select(ID))
=f.submit 'Confess'
或匿名,他们的名字将被隐藏,没有人会知道谁发布了这篇帖子..为此我想的是我会在数据库中创建一个名为匿名的用户,如果用户在发布时选择匿名在select_form中以匿名用户身份发布。
在我的控制器中我想要这样的东西和主要观点我无法理解控制器如何知道用户选择了什么?
这是我的控制器
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?
@confession = current_amitian.confessions.build
@anonymous = Amitian.where(email: anonymous@anonymous.com)
# (if anonymous selected )
do @anonymous.confessions.build
end
答案 0 :(得分:0)
要访问此ID:id params您使用confession_params[:id]
或params[:confession][:id]
如果要有条件地加载不同的视图,可以使用这样的respond_to块:
if confession_params[:id] == 1 #or params[:confession][:id] == 1
loaded_view = :foo
else
loaded_view = :bar
end
respond_to do |format|
format.html { render loaded_view }
end
这将根据您foo.html.erb
bar.html.erb
参数加载@confession
或:id
,该参数由form_for
标记选择,该标记基于加载参数名称在你的视图的变量模型上。