我创建了新的 Rails 项目,仅使用生成的主页控制器来测试它。
我的设计型号是User,所以注册页面是http://localhost:3000/users/sign_up。
如果我触发错误,例如,在未提供密码的情况下提交表单,我会被重定向到http://localhost:3000/users.
http://localhost:3000/users/sign_up犯错后如何继续前进?
我读了这个问题,唯一的答案redirect_to :back建议在控制器中使用。
问题是我没有覆盖控制器。如果覆盖是解决问题的唯一方法,请解释它应该如何。
这是我的routes.rb
Rails.application.routes.draw do
root to: "home#index"
get 'home/index'
devise_for :users
end
Run Code Online (Sandbox Code Playgroud)
这是 的源代码Devise::RegistrationsController。我应该如何覆盖new或create实现我需要的?
我正在使用 Gitlab。
我创建了一个问题,然后在问题视图页面中使用了“创建分支”按钮。
我在分支机构工作并完成并提交了大约 80% 的工作。
当我从这个分支创建一个合并请求到 master 并接受它时,问题自动关闭。
我应该怎么做才能在不关闭问题的情况下接受合并请求?
或者也许这是一个 git 概念,只有在问题完全解决后才应该合并分支?
在下面的代码示例中,我希望div中的文本首先更改。
但是,只有在警报对话框中单击“确定”后,文本才会更改。
var x = 0;
function counter() {
x++;
document.getElementById('aDiv').innerHTML = x;
alert(x);
}Run Code Online (Sandbox Code Playgroud)
<div id="aDiv">
0
</div>
<input type="button" value="+1" onclick="counter()">Run Code Online (Sandbox Code Playgroud)
这是我的创建表迁移。请注意,我没有提供price.
class CreateProducts < ActiveRecord::Migration[5.0]
def change
create_table :products do |t|
t.string :name
t.decimal :price, precision: 8, scale: 2
t.timestamps
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在我想设置一个默认值。根据迁移指南,我应该提供from使其可逆。我应该提供什么价值?
class ChangeProductsPriceDefault < ActiveRecord::Migration[5.0]
def change
change_column_default :products, :price, from: 'WHAT_TO_WRITE_HERE?', to: 0
end
end
Run Code Online (Sandbox Code Playgroud)