我想通过控制器在我的create方法中使用render :new
,问题是,它更改了url,并且在url中我有一个参数需要填写html中的表单(例如:localhost3000 / episodes / new?serie_id = 8,我使用hidden_field_tag进行此操作。
我的控制器:
def new
@episode= Episode.new
end
def create
# params = { episode: { name: valor,serie_id: valor,... more} }
@episode = Episode.new(episode_permits)
if @episode.save
redirect_to @episode
else
render :new #This render I want to fix
end
end
我的部分_form.html.erb:
<%= form_for @chapter do |f| %>
<%= f.label :name,'Name' %>
<%= f.text_field :name%> <!-- I don't want to use required: true -->
<%= f.hidden_field :serie_id,value: params[:serie_id] %>
<% end %>
如果用户按下从新创建表单的按钮,如果他在填写表单时犯了一个错误,则无法保存@episode并进行render :new
并将url更改为localhost3000 / episodes /
我该如何render :new
不更改网址?
我试图代替render :new
使用redirect_to new_episode_path(:serie_id => params[:episode][:serie_id])
,但是这丢失了用户在表单中输入的内容,并且所有验证都无法显示发生了什么,所以这不是一个选择。
关于项目的模棱两可的信息:我正在制作一个Netflix网站来学习Rails,一个意甲(名称)有很多插曲,一个情节(名称,serie_id)属于一个意甲。