0

我有一个带有 id 、 name 、 e-mail 等的 User 表...

我想将当前登录的用户 ID 传递到另一个表 Post 中,以便每个帖子都包含相应的用户 ID。

控制器端

**app/controller/post_controller.rb**

    class PostController < ApplicationController
      def index
       @post=Post.new
       @posts=Post.all
      end


      def create
       @post=Post.new(params[:post])
       respond_to do |format|
       if @post.save
          format.html { redirect_to :controller=>"post" ,:action=>"index" }
         format.json { render json: @post, status: :created, location: @post }
         #redirect_to :controller=>"post" ,:action=>"index"
        else
         format.html { redirect_to :controller=>"home" ,:action=>"index" }
         format.json { render json: @post, status: :created, location: @post }
       end  
      end
      end

查看零件

**app/views/post/questions.html.erb**

<%=form_for :post do |f| %>

  <table>
    <tr>
        <td>
            Title:<%=f.text_field :title %>
        </td>
    </tr>
    <tr>
        <td>
            <h3>Question</h3>
        </td>
    </tr>
    <tr>
        <td>
            <%=f.text_area :body %>
        </td>
    </tr>
    <tr>
        <td>
            Tag:<%=f.text_field :tag %>
        </td>
        </tr>
    <tr>
        <td>
            <h3><%= f.submit "Post Your Question" %></h3>
        </td>
    </tr>
  </table>
<%end%>

Post 表包含用户 ID、标题、正文、标签

当用户成功登录时,我已将用户 ID 值存储在会话中............

请告诉我如何将 id 字段添加到 Post 表中.....

4

1 回答 1

0

在 create 方法中,而不是 this@post=Post.new(params[:post])将其更改为 this

@post=Post.new(params[:post]).merge(user_id: current_user.id)

你会很高兴的

于 2012-06-11T10:44:56.160 回答