我知道我错过了什么......我不知道如何解决它。
我有一个具有body
属性的消息模型。
控制器位于users/messages_controller.rb
我的路线
namespace :users do
resources :messages
end
给出
users_messages GET /users/messages(.:format) users/messages#index
POST /users/messages(.:format) users/messages#create
new_users_message GET /users/messages/new(.:format) users/messages#new
edit_users_message GET /users/messages/:id/edit(.:format) users/messages#edit
users_message GET /users/messages/:id(.:format) users/messages#show
PUT /users/messages/:id(.:format) users/messages#update
DELETE /users/messages/:id(.:format) users/messages#destroy
我创建了一个部分,我通过
在users / show上呈现 <%= render :partial => 'users/messages/sendme' %>
_sendme.html.erb
<%= form_tag(users_messages_path) do %>
<%= text_area_tag "Message" %>
<%= submit_tag 'Submit' %>
<% end %>
但是当我提交一条消息,并且它转到messages_controller中的create动作时,我无法提取发送消息的用户的id。 我得到的参数是
pry(#<Users::MessagesController>)> params
=> {"utf8"=>"Γ£ף",
"authenticity_token"=>"IrcPBHgBp/BI...mBbOQx7gcJc5xNtAFs=",
"Message"=>"test",
"commit"=>"Submit",
"action"=>"create",
"controller"=>"users/messages"}
用户/节目的网址为http://localhost:3000/users/24
我需要添加什么才能在params中获取用户的ID?
答案 0 :(得分:1)
如果您的表单中有@user
,请在其中创建hidden_field_tag
,如下所示:
<%= hidden_field_tag :id, @user.id %>
然后,当您提交表单时,params[:id]
将填充为@user.id
。