我有一个模式可以作为我的应用程序中的免责声明,我需要在模式底部的链接,说明"同意&继续"切换布尔值并输入布尔值切换的时间。我已经创建了按钮作为具有隐藏链接的表单,但我似乎无法看到如何使其提交表单并重定向到我指定的路径。这是我的link_to代码。
this.m20 = this.m00 * f20 + this.m10 * f21 + this.m20 * f22
答案 0 :(得分:1)
首先,在user_records_controller中创建一个new
方法,或者在表单显示的控制器操作中创建:
def new
@user_record = current_user.build_user_record
end
将此放在您的视图中:
<% if current_user.user_record.blank? %>
<%= form_for @user_record do |f| %>
<%= f.hidden_field :disclosure_acceptance, :value => true %>
<%= f.hidden_field :disclosure_date, :value => Time.now %>
<%=f.submit "Agree & Continue", class: "btn btn-primary") %>
<% end %>
<% end %>
为user_record
制作一个如下所示的创建操作:
def create
@user_record = current_user.build_user_record(permitted_params)
if @user_record.save
redirect_to user_steps_path(current_user)
else
render :new
end
end
private
def permitted_params
params.require(:user_record).permit(:disclosure_acceptance , :disclosure_date) #etc
end
<强>更新强>
如果您直接想要跳转到“创建”&#39;动作,您可以像这样进行配置: 为您的路线添加自定义操作:
post 'rate/:article_id' => 'user_records#create' :as => :create_user_record
#or whichever controller/action you wish
您应该更新表单上的路线:
= form_tag create_user_record_path, :method=>'post' do
#etc
为了从控制器创建user_record,您需要稍微改变一下:
def create
current_user.user_record.create(:user_id => current_user.id, :disclosure_acceptance => params[:disclosure_acceptance] , :disclosure_date => params[:disclosure_date])
if current_user.user_record.save
#etc
end