Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如果用户没有';不存在_Ruby On Rails_Ruby_Model_Nested Forms_Nested Attributes - Fatal编程技术网

Ruby on rails 如果用户没有';不存在

Ruby on rails 如果用户没有';不存在,ruby-on-rails,ruby,model,nested-forms,nested-attributes,Ruby On Rails,Ruby,Model,Nested Forms,Nested Attributes,感谢你们在这里的持续支持。我有一个表格,我正在努力让我的头脑围绕着最好的方式来构建它 我有一个表单来创建一个新的事件,并希望为一个用户列出字段,简单的电子邮件和名称 创建事件时,如果嵌套资源用户不存在,则应创建该用户,或者应将用户id更改为用户表中的用户id。我的应用程序未使用任何身份验证,因此当前用户不可用。该应用程序将用于善意的人,他们输入的姓名和电子邮件实际上属于他们 这是我到目前为止得到的 事件模型 belongs_to :user has_many :attendees, depend

感谢你们在这里的持续支持。我有一个表格,我正在努力让我的头脑围绕着最好的方式来构建它

我有一个表单来创建一个新的事件,并希望为一个用户列出字段,简单的电子邮件和名称

创建事件时,如果嵌套资源用户不存在,则应创建该用户,或者应将用户id更改为用户表中的用户id。我的应用程序未使用任何身份验证,因此当前用户不可用。该应用程序将用于善意的人,他们输入的姓名和电子邮件实际上属于他们

这是我到目前为止得到的

事件模型

belongs_to :user
has_many :attendees, dependent: :destroy
has_many :comments, dependent: :destroy
accepts_nested_attributes_for :user, allow_destroy: true, reject_if: :all_blank
has_many :events, dependent: :destroy
用户模型

belongs_to :user
has_many :attendees, dependent: :destroy
has_many :comments, dependent: :destroy
accepts_nested_attributes_for :user, allow_destroy: true, reject_if: :all_blank
has_many :events, dependent: :destroy
事件控制器#新增

@event = Event.new
@event.build_user (I assume this is working and is building the user)
<h2>Get Started</h2>

<%= simple_form_for @outing, multipart: true do |f| %>
<fieldset>
        <legend>Event Details</legend>
        <%= f.input :name, autofocus: true %>
        <%= f.label :chosen_date %>
        <%= f.text_field :chosen_date, start_year: Date.today.year, :"data-behaviour" => 'datepicker' %>
        <%= f.input :chosen_time, minute_step: 5 %>
        <%= f.input :description %>
    </fieldset>

    <%= render 'user_form', :user => @event.user %>

    <%= f.button :submit %>
<% end %>
事件视图#新增

@event = Event.new
@event.build_user (I assume this is working and is building the user)
<h2>Get Started</h2>

<%= simple_form_for @outing, multipart: true do |f| %>
<fieldset>
        <legend>Event Details</legend>
        <%= f.input :name, autofocus: true %>
        <%= f.label :chosen_date %>
        <%= f.text_field :chosen_date, start_year: Date.today.year, :"data-behaviour" => 'datepicker' %>
        <%= f.input :chosen_time, minute_step: 5 %>
        <%= f.input :description %>
    </fieldset>

    <%= render 'user_form', :user => @event.user %>

    <%= f.button :submit %>
<% end %>

提前谢谢!!:)

您没有提供完整的stacktrace,因此很难说清楚。这就是为什么我对你的问题投了反对票

我猜是这样的:

您的用户表单如下所示:

<fieldset>
    <legend>About You</legend>
    <%= simple_fields_for user do |u| %>
    <%= u.name %>
    <%= u.email %>
    <% end %>
</fieldset>

关于你
它在
u
上调用方法
name
email
。在这种情况下,
u
simple\u fields\u为
创建的对象。它是一个表单帮助器,允许您创建输入字段、选择框等,就像在
new
partial中一样


因此,与其叫
u.name
,不如叫
u.input:name
u.input:email

啊,我真傻。这就是工作到很晚和患上人流感对你的影响。我不敢相信我忘记u的愚蠢