Rails nested_form内nested_form [英] Rails nested_form inside nested_form

查看:128
本文介绍了Rails nested_form内nested_form的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下模型和关系:

Rate fields
  t.string :type
  t.string :name

class Rate < ActiveRecord::Base
  has_many :category_rate_requests
end

CategoryRateRequests fields
  t.date :date_from
  t.date :date_to

class CategoryRateRequests < ActiveRecord::Base
  belongs_to :rate
  has_many :category_rates
end

CategoryRate 
  t.integer :room_category_id
  t.integer :new_rate_id
  t.integer :category_rate_request_id
  t.integer :amount

class CategoryRate < ActiveRecord::Base
  belongs_to :rate
  belongs_to :category_rate_request
  belongs_to :room_category
end

我正在尝试在nested_form内有一个nested_form

And I'm trying to have a nested_form inside a nested_form

= nested_form_for @rate do |f|
  = label_tag :name, t('rates.new.name'), class: 'grey h2'
  = f.text_field(:name, required: true, class: 'form-input form-control full-width-input')
  = f.fields_for :category_rate_request do |request|
    = request.text_field(:date_from,  class: 'date-input form-control start-date-input', type: 'text', 'data-provide': 'datepicker', placeholder: t('common.date_from'))
    = request.text_field(:date_to, class: 'date-input form-control end-date-input', type: 'text', 'data-provide': 'datepicker', placeholder: t('common.date_to'))
    = request.fields_for :category_rate, do |u|
      = u.number_field(:price, class: "form-control", placeholder:  placeholder)

总体而言,这是格式.它有更多东西,但是为了不包含太多不必要的信息,我省略了表格的某些字段.

Overall this is the format. It has more things, but to not include too much unnecesary information I omitted some fields of the form.

但是出现以下错误

在690毫秒内完成500个内部服务器错误(ActiveRecord:6.1毫秒)

Completed 500 Internal Server Error in 690ms (ActiveRecord: 6.1ms)

SyntaxError-语法错误,意外的keyword_do_block; _slim_controls2 = request.fields_for:new_category_rate,请| u |; ^/project/app/views/new_rates/_category_rate_requests.html.slim:61: 语法错误,意外的keyword_ensure,预期输入结束:

SyntaxError - syntax error, unexpected keyword_do_block ; _slim_controls2 = request.fields_for :new_category_rate, do |u|; ^ /project/app/views/new_rates/_category_rate_requests.html.slim:61: syntax error, unexpected keyword_ensure, expecting end-of-input:

用红色标记的那一行是:

That line marked in red is:

= request.fields_for :new_category_rate, do |u|

有什么办法可以让我以一种形式拥有所有三个模型的属性?以Rate形式更精确.

Is there any way I can have the attributes of all three models in one form? In the Rate form more precisely.

推荐答案

(从评论复制)

在错误行中您还有一个逗号.更改为:

You have an extra comma in the erroring line. Change it to:

= request.fields_for :new_category_rate do |u|

这篇关于Rails nested_form内nested_form的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆