我正在使用build,fields_for并accepts_nested_attributes_for在与新注册相同的表格上创建新的注册说明(有许多注册说明).大.
问题:在现有注册的编辑表单上,我想要创建另一个新注册注释,但我不希望看到每个现有注册注释的字段.
我有这个
class Registration < ActiveRecord::Base
attr_accessible :foo, :bar, :registration_notes_attributes
has_many :registration_notes
accepts_nested_attributes_for :registration_notes
end
Run Code Online (Sandbox Code Playgroud)
还有这个
class RegistrationsController < ApplicationController
def edit
@registration = Registration.find(params[:id])
@registration.registration_notes.build
end
end
Run Code Online (Sandbox Code Playgroud)
在我看来我这样做:
<%= form_for @registration do |r| %>
<%= r.text_field :foo %>
<%= r.text_field :bar %>
<%= r.fields_for :registration_notes do |n| %>
<%= n.text_area :content %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
并且它创建一个新的注册说明(良好)空白文本区域和每个现有注册注意对于注册(不,谢谢).
有没有办法只为该注册创建一个新注释并将现有注释单独留下?
服务器上有一个Git存储库,我的同事和我都推送和拉动.只要我们在提交前拉动它就可以正常工作.
但是,如果他已经推到了主分支,并且在同一时间我做了一个本地提交,当我试图拉动时,我得到了这个:
! [rejected] master -> master (non-fast-forward)
Run Code Online (Sandbox Code Playgroud)
但我知道应该没有冲突.
我解决它的方法是拉入一个新的临时分支,然后将其合并到我的主人中,如下所示:
% git pull origin master:temp
From ssh://example.com/home/my/remote/repo
* [new branch] master -> temp
Already up-to-date.
% git merge temp
Already up-to-date.
% git push origin master:master
Run Code Online (Sandbox Code Playgroud)
请注意,Git表现得像我没有做任何事情,但实际上我已经把它动摇了.
最近我意识到,而不是试图"说服"Git,我可以拉.我可以假装我还没有尚未提交git reset --soft HEAD^和git stash,然后做拉,并承诺在此之上.
什么可能导致这种奇怪的挑剔行为?
我能够在我的本地机器上重现这个问题.这是我做的:
首先,我创建了第一个"本地"存储库并添加了一个文件.
% cd
% mkdir local-1
% cd local-1/
% mkdir website
% cd website/
% git init
Initialized empty Git repository in /Users/jason/local-1/website/.git/
% touch file
% git add .
% …Run Code Online (Sandbox Code Playgroud)