我想构建一个 form_tag,允许我向客户发布新便条。我的 rake 路线如下所示:
[hchq (master)]$ rake routes
user_notes GET /users/:user_id/notes(.:format) notes#index
POST /users/:user_id/notes(.:format) notes#create
new_user_note GET /users/:user_id/notes/new(.:format) notes#new
edit_user_note GET /users/:user_id/notes/:id/edit(.:format) notes#edit
user_note GET /users/:user_id/notes/:id(.:format) notes#show
PUT /users/:user_id/notes/:id(.:format) notes#update
DELETE /users/:user_id/notes/:id(.:format) notes#destroy
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
sessions POST /sessions(.:format) sessions#create
new_session GET /sessions/new(.:format) sessions#new
session DELETE /sessions/:id(.:format) sessions#destroy
clients GET /clients(.:format) clients#index
POST /clients(.:format) clients#create
new_client GET /clients/new(.:format) clients#new
edit_client GET /clients/:id/edit(.:format) clients#edit
client GET /clients/:id(.:format) clients#show
PUT /clients/:id(.:format) clients#update
DELETE /clients/:id(.:format) clients#destroy
root / clients#index
signup /signup(.:format) users#new
signin /signin(.:format) sessions#new
signout DELETE /signout(.:format) sessions#destroy
我可以只发布到笔记上的创建操作,还是需要获取 new_user_note_path?为什么?我在控制器中有一个 @client 实例变量。
这是我目前拥有的:
<%= form_tag(new_user_note_path, method: :get) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "Compose new note" %>
</div>
<%= f.submit "New Note"%>
<% end %>
这让我遇到了这个错误:
我认为需要发生的是我需要构建一个 form_tag 来点击控制器的 create 或 new_user_note 操作。我认为它需要点击 new_user_note,现在我考虑更多以便它可以设置客户端 ID。它是否正确?
如果是这样,我该如何构建我的 form_tag?我需要传递带有 client_id 的隐藏字段吗?
另外,关于 new 和 create 操作,我的笔记控制器应该是什么样子?