【发布时间】:2015-07-19 01:04:10
【问题描述】:
我正在使用 rails 作为 ember 应用程序的 API 服务(可能不是正确的方法,但请耐心等待)。我正在努力理解我的主要模型的强大参数。
我的模型是:
class LoanApplication < ActiveRecord::Base
# Relationships
has_many :entity_application_links
has_many :entities, through: :entity_application_links
# Nested attributes_for
accepts_nested_attributes_for :entity_application_links, :entities
end
class EntityApplicationLink < ActiveRecord::Base
# Relationships
belongs_to :entity
belongs_to :loan_application
end
class Entity < ActiveRecord::Base
# Relationships
has_many :entity_application_links
end
我的 LoanApplicationController 强参数:
def loan_application_params
params.require(:loan_application).permit(
:title,
:application_state_id,
:custom_data,
:user_id,
entity_application_links: [
:id,
:loan_application_id,
:entity_id,
entity: [:name]
]
)
end
为了测试这一点,我将以下数据发送到 LoanApplicationController#create:
def create
@loan_application.user = current_user
if @loan_application.save
render json: @loan_application, status: :created
else
render json: @loan_application.errors, status: :unprocessable_entity
end
end
数据:
{
:title=>"Jeanie Deckow",
:entity_application_links=>[
{
:entity=>{:name=>"entity1"}
}
]
}
我已经对我的测试数据和强大的参数尝试了大量的变化,但它似乎从来没有完全奏效。
使用当前配置,我得到EntityApplicationLink(#69859611738960) expected, got ActionController::Parameters(#69859594766540)
,我认为这意味着它需要一个 EntityApplicationLink 实例,但我正在传递参数。做一些研究,我发现我应该改用entity_application_links_attributes,但这似乎期待一个loan_application_id,我在create方法中没有。
我也认为这违背了 ember 创建数据的方法,但我还没有开始。
我相信我走在正确的道路上,但有些事情并没有加起来,而且已经花费了我太多时间。
我仍在努力,如果您需要更多信息,请告诉我。
【问题讨论】:
标签: ruby-on-rails ember.js rails-api