【问题标题】:How to have user information in the controller in rails如何在rails的控制器中拥有用户信息
【发布时间】:2017-11-25 13:56:15
【问题描述】:

我需要将 user_id 存储在帖子表中(对于每个新帖子)。我将表单中的 user_id 作为 hidden_​​field 传递。从控制器本身获取 user_id 的替代方法是什么。

在控制器中

def create
    @post =@topic.posts.new(post_params).save
end

发布模型

class Post < ApplicationRecord
  belongs_to :topic, counter_cache: true
  belongs_to :user
  has_and_belongs_to_many :users # to maintain read and unread status for the posts
  has_many :comments , dependent: :destroy
  has_many :ratings , dependent: :destroy
  has_and_belongs_to_many :tags
  end

表格

<%= form_for [@topic, @post],remote: true,html: { multipart: true} do |form| %>

    <div class="field">
      <%= form.label :author %>
      <%= form.text_field :author, :value => current_user.email %>
    </div>

      <%= form.label :content %>
      <%= form.text_area :content, id: :post_content, autofocus: true %>

    <!--<%= form.hidden_field :user_id %>-->

<div class="field">
  <%=form.label :image%><br>
  <%=form.file_field :image %>
</div>

    <%= form.fields_for :tags do |a|%>
    <div class="field">

      <%= a.label :tag_name %>
      <%= a.text_area :tag_name %>
    </div>
    <% end %>
    <div class="field">
      <%= form.label "select tag" %>
      <%= form.collection_select(:tag_ids, Tag.all, :id, :tag_name, {}, {:multiple => true, :size => 10, :prompt_text => "select tag"}) %>
    </div>


    <div class="submit">
      <%= form.submit %>
    </div>
<% end %>

【问题讨论】:

  • 您如何跟踪当前登录的用户?可以发一下表格代码吗?
  • 如何存储用户?你用devisegem 吗?
  • @xeon131 我已添加表单代码
  • @MikhailKatrin 是的。我正在使用设计宝石
  • @Aarthi 在您使用 current_user.email 的表单中,您可以在控制器中执行类似操作。试试@topic.posts.new(post_params.merge(user: current_user)).save

标签: ruby-on-rails devise


【解决方案1】:

您可以在控制器中使用current_user,如下所示,

def create
  @topic.posts.new(post_params).save
end

private

def post_params
  params.require(:post).permit(...).merge(user: current_user)
end

def create
  @topic.posts.new(post_params.merge(user: current_user)).save
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 2016-06-23
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多