【问题标题】:rails multiple models in simple_form以 simple_form 支持多个模型
【发布时间】:2013-01-29 13:07:14
【问题描述】:

您好,我有一个名为 Event 的模型和一个用于创建 events 的表单。 Eventsbelong_to Users 并且应该由他们创建。

如何将current_user.id 实现为隐藏字段,以便将其保存在Event 表中并属于current_user

谢谢。

目前看起来是这样的。但是给我一个错误:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil,     use     object_id

我的表格:

   <%= simple_form_for @event do |f| %>
     <% if @event.errors.any? %>
       <div class="error_messages">
         <h2><%= pluralize(@event.errors.count, "error") %> prohibited this user from being   saved:</h2>
         <ul>
           <% @event.errors.full_messages.each do |msg| %>
             <li><%= msg %></li>
           <% end %>
         </ul>
       </div>
     <% end %>

     <%= f.simple_fields_for :user do |id| %>
       <%= id.input :contact_name, :value=>current_user.id %>
     <%end%>
     <div class="field">
       <%= f.input :title, :input_html => { :class => "span10" }%>

【问题讨论】:

    标签: ruby-on-rails forms rails-models


    【解决方案1】:

    如果你想创建一个属于当前登录用户的事件,那么你应该这样做:

    def create
      @event = current_user.events.new(params[:event])
    
      ## use your logic to save and redirect
    end
    

    我假设您的用户模型中有has_many :events

    【讨论】:

    • 谢谢。我以另一种方式解决了问题,请参阅下面的我自己的答案。干杯
    • @user1884013 是的.. 但在您的回答中,您是在批量分配 user_id,但通常您应该始终使用关联。
    【解决方案2】:
        def create
        @event = Event.new(params[:event])
        @event.user_id = current_user.id
    

    将此发布到事件控制器中。为我做的。来自设计方法的 current_user。 干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 2014-08-23
      • 1970-01-01
      • 2020-12-31
      • 2019-05-29
      相关资源
      最近更新 更多