0

私は何かが欠けていることを知っています..それを修正する方法がわかりません。

属性を持つ Message モデルがあり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 、params でユーザーの 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 に答える