如何在Rails 3中将数据从一个表插入另一个表

时间:2012-06-11 10:27:44

标签: ruby-on-rails

我有一个包含id,姓名,电子邮件等的用户表...

我想将当前记录的用户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%>

帖子表包含用户ID,标题,正文,标记

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

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

1 个答案:

答案 0 :(得分:0)

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

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

你会很高兴