gpt4 book ai didi

ruby-on-rails - 验证失败时如何保持相同的网址

转载 作者:行者123 更新时间:2023-12-03 15:57:06 26 4
gpt4 key购买 nike

我正在使用 Ruby on Rails 2.3.8 并且我有一个注册表单,我在其中收到一个参数,如下所示:/registration/4 ,其中4是推荐即将注册网站的用户的用户id。

问题是,如果用户提交注册时验证失败(表单呈现给 Controller users , Action create_particular),站点将重定向到 /users/create_particular ,因此我丢失了我之前拥有的值为 4 的参数。此外,我希望用户停留在同一个网址,即 /registration/4
我怎样才能做到这一点?

最佳答案

然后你应该重写你的 create 方法。您应该使用 redirect_to :back而不是 render :action
UPD

def new
@word = Word.new(params[:word])
@word.valid? if params[:word]
end

def create
@word = Word.new(params[:word])
if @word.save
redirect_to @word
else
redirect_to new_word_path(:word => params[:word] )
end
end

看起来很脏,但这只是划痕

UPD 2

这确实不是最好的解决方案,但它有效
# routes.rb
match 'words/new' => 'words#create', :via => :post, :as => :create_word

# words_controller
def new
@word = Word.new
end

def create
@word = Word.new(params[:word])

respond_to do |format|
if @word.save
format.html { redirect_to(@word, :notice => 'Word was successfully created.') }
else
format.html { render :action => "new" }
end
end
end

# views/words/new.html.erb
<%= form_for(@word, :url => create_word_path) do |f| %>
...
<% end %>

关于ruby-on-rails - 验证失败时如何保持相同的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4879958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com