2012-11-27 85 views
0

我知道我錯過了一些東西..我不知道如何解決它。在表單中缺少參數[:id]

我有一個消息模型,它具有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。 我得到的PARAMS是

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

的用戶/顯示的URL http://localhost:3000/users/24 什麼我需要補充,所以我可以獲取用戶的ID在PARAMS?

回答

1

如果有可用的@user在你的形式,創建一個hidden_field_tag裏面是這樣的:

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

然後,當您提交表單,該params[:id]將被填充爲@user.id

+0

謝謝,有沒有辦法做到這一點沒有隱藏領域?不知何故從用戶#顯示網址? –

+0

我不這麼認爲。參數始終是表單的字段。 – MurifoX