gpt4 book ai didi

ruby-on-rails - 我应该在哪里放置我的 respond_to block ?

转载 作者:行者123 更新时间:2023-12-04 06:37:56 25 4
gpt4 key购买 nike

假设我有一个 ArtcilesController使用如下创建操作。

def create
@article = Article.new(params[:article])

respond_to do |format|
if @article.save
format.html { redirect_to(@article, :notice => "Article created") }
format.json { render :show }
else
format.html { render :new }
format.json { render(:json => { :errors => @article.errors }, :status => :not_acceptable) }
end
end
end

同样的 Action 也可以写成如下:
def create
@article = Article.new(params[:article])

if @article.save
respond_to do |format|
format.html { redirect_to(@article, :notice => "Article created") }
format.json { render :show }
end
else
respond_to do |format|
format.html { render :new }
format.json { render(:json => { :errors => @article.errors }, :status => :not_acceptable) }
end
end
end

请注意,在第一个示例中,respond_to 块中有一个 if else 块,而在第二个示例中,单个 if else 块中有两个 respond_to 块。

我应该更喜欢一个吗?如果是,有什么原因吗?或者只是选择一种风格并坚持下去?

最佳答案

Style only 但是你只响应一个请求并根据你的模型在你的 Controller 中使用路由逻辑。

def create
@article = Article.new(params[:article])
respond_to do |format|
format.html {
@article.save ? redirect_to(@article, :notice => "Article created") : render :new
}
format.json {
@article.save ? render(:show) : render(:json => { :errors => @article.errors }, :status => :not_acceptable)
}
end
end

关于ruby-on-rails - 我应该在哪里放置我的 respond_to block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4639123/

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