2016-08-16 43 views
0

我有以下的模型和关系: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_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) 

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

但我得到以下错误

完成在690ms 500内部服务器错误(ActiveRecord的:6.1ms)

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

该行标记为红色是:

= request.fields_for :new_category_rate, do |u|

有什么办法,我可以拥有所有三个型号的属性的一种形式?在更精确的Rate形式。

+0

代码不足。请发表您的参数模型的方法(应该是这样的'高清model_params'其中'model'是模型的名称。 – MarsAtomic

+0

请提供代码和错误日志的片段。 –

+2

你在示数行额外的逗号,将其更改为:'= request.fields_for:new_category_rate做| U |' – ollpu

回答

0

(从评论复制)

你在示数行额外的逗号。将其更改为:

= request.fields_for :new_category_rate do |u| 
0

我不知道,如果你需要使用宝石因特殊原因,但我认为它没有被更新的时间太长使用它。

我用Cocoon,并用简单的形式,你只需要做:

simple_form_for @a do |f| 
    f.simple_fields_for :b do |b_f| 
    b_f.simple_fields_for :c do |c_f| 
     ... 
    end 
    end 
end 

您可以使用一个非常友好的方式link_to_add_associationlink_to_remove_association了。

+0

我会试试这个,谢谢 –

相关问题