我是Rails开发的新手。
我的疑问是,如果当前路径不存在,是否有可能重新定义另一条路径
例如,
rout.rb
public function obtainSelectedProfile()
{
$SelectedCompany= $this->obtainLoggedOnCompany->first();
return $this->hasMany('app\Profile','user_id')->where('company_id', '=',
$SelectedCompany->company_id);
}
如果任何人浏览“ / new”或“某处”,这都不在我的route.rb中,那么它将显示以下错误消息,
路由错误
没有路线与[GET]“ / new”匹配
Rails.root:C:/ wamp / www / rubyOnRailse / MyApp
应用程序跟踪|框架跟踪完整跟踪
路线
路由从上到下优先匹配
如果有可能解决此问题。
注意:
我使用匹配“ * path” => redirect(“ /”)
此方法对我不起作用
如果一切正常,请解释一下这是什么意思,因为我无需修改即可直接使用此行。
答案 0 :(得分:0)
您可以使用:
resources :userlists
别忘了在视图/用户列表中创建一个新的html文件
new.html.erb or somewhere.html.erb
来源:https://guides.rubyonrails.org/routing.html
您可以在对redirect_to的呼叫中设置即显消息。它将接受密钥:notice或:alert:
redirect_to articles_path, notice: "Article Created"
redirect_to login_path, alert: "You must be logged in!"
请记住,redirect_to不会导致动作停止执行。这不像在Ruby方法中调用return一样。
这是怎么可能出错。假设您有这样的删除操作:
def destroy
article = Article.destroy(params[:id])
redirect_to articles_path, notice: "Article '#{article.title}' was deleted."
end
然后,您开始为应用程序添加安全性。您已经看到了Ruby代码中使用的“保护子句”,其中return语句可以尽早切断方法。您决定在这里模仿它:
def destroy
redirect_to login_path unless current_user.admin?
article = Article.destroy(params[:id])
redirect_to articles_path, notice: "Article '#{article.title}' was deleted."
end