0

我知道我错过了一些东西..我不知道如何解决它。

我有一个具有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

我创建了一个部分,我通过它在用户/显示上呈现

  <%= render :partial => 'users/messages/sendme' %>

_sendme.html.erb

<%= form_tag(users_messages_path) do %>
         <%= text_area_tag "Message" %>
         <%= submit_tag 'Submit' %>
<% end %>

但是当我提交一条消息时,它会进入 messages_controller 中的创建操作,我无法提取发送消息的用户的 ID。我得到的参数是

pry(#<Users::MessagesController>)> params
=> {"utf8"=>"Γ£ף",
 "authenticity_token"=>"IrcPBHgBp/BI...mBbOQx7gcJc5xNtAFs=",
 "Message"=>"test",
 "commit"=>"Submit",
 "action"=>"create",
 "controller"=>"users/messages"}

users/show 的 URL 是http://localhost:3000/users/24 我需要添加什么才能在参数中获取用户的 ID?

4

1 回答 1

1

如果您@user的表单中有可用的,请在其中创建一个hidden_field_tag,如下所示:

<%= hidden_field_tag :id, @user.id %>

然后,当您提交表单时,params[:id]将填充为@user.id.

于 2012-11-27T11:15:24.850 回答