我想要做的是能够添加注释并将它们与 Rails 中的客户端相关联。
我的客户端模型如下所示:
class Client < ActiveRecord::Base
attr_accessible :company_name, :contact_name, :email_address, :phone_number,
:street_address, :city, :state, :zip
has_many :notes, dependent: :destroy
end
我的笔记模型如下所示:
class Note < ActiveRecord::Base
attr_accessible :content
belongs_to :client
default_scope order: 'notes.created_at DESC'
validates :client_id, presence: true
end
我的客户的 index.html.erb 如下所示:
<% @clients.each do |client| %>
.
.
.
<%= form_for(@notes) do |f| %>
<%= f.text_area :content, placeholder: "Compose new note..." %>
<%= f.submit "Add Note", class: "buttonPri addnote" %>
<% end %>
<% end %>
在我的客户控制器中,我有:
def index
if signed_in?
@clients = Client.all
@note = client.notes.build
else
redirect_to signin_path
end
end
在我的笔记控制器中:
def create
@note = client.notes.build(params[:note])
if @note.save
flash[:success] = "Note Created"
redirect_to root_path
else
render 'static_pages/home'
end
end
undefined local variable or method client for #<ClientsController:0x007f835191ed18>
加载客户端索引页面时出现错误。我认为正在发生的是控制器看不到块变量client
,我需要将其移出控制器并进入 form_for。这是正确的方法吗?我该怎么做?
我正在查看 rails API 并发现了这一点:
<%= form_for([@document, @comment]) do |f| %>
...
<% end %>
Where @document = Document.find(params[:id]) and @comment = Comment.new.
这是我需要进入的方向吗?