rails,如何在'show'动作中传递用户id

时间:2012-04-21 20:15:04

标签: ruby-on-rails forms params hidden-field

即时通讯用户个人资料,即路径是......

http://localhost:3000/users/2

我有一个文本字段,因此当前用户(我)可以在他的个人资料页面上向用户2发送私人消息。

如何检索用户ID并将其传递到隐藏字段?

<div><%= f.hidden_field :????, :value => ???? %></div>

感谢。隐藏标记字段是一种形式。这是表格,如果它有用

<%= form_for(current_user.microposts.build(params[:micropost])) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field">
    <%= f.text_area :content, placeholder: "Send a private message" %>
  </div>
  <div><%= f.hidden_field :private, :value => "true" %></div>

  <%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>

再次感谢

2 个答案:

答案 0 :(得分:2)

我会尝试使用嵌套路由,例如

resources :users do
  resources :microposts
end

然后使用

<%= form_for([current_user, @micropost])  do |f| %>

我尽量避免在铁轨中隐藏字段,这通常意味着我错过了约定。

答案 1 :(得分:1)

在您的控制器中,您将拥有:

@user = User.find(params[:id])

所以:

<div><%= f.hidden_field :user_id, :value => @user.id %></div>