Eng*_*epe 0 ruby ruby-on-rails single-table-inheritance
我刚刚开始学习rails和ruby,所以如果这太愚蠢了,请耐心等待.
我的应用程序中有几种不同的AppModule类型,它们具有不同的行为但数据类似,所以我使用单表继承来保存它们.
但是,当尝试允许用户明确选择他们想要的类型时,app_modules/new.html.erb我会收到警告WARNING: Can't mass-assign these protected attributes: type.这是相关代码:
<% form_for(@app_module) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :type %><br />
<%= f.select( :type, options_from_collection_for_select(AppModule.subclasses().map{ |c| c.name}, 'to_s', 'to_s')) %>
</p>
<%= f.submit 'Create' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我已尝试attr_accessible :type在模型文件中明确设置但它不起作用
我使用的是rails 2.3.8和ruby 1.8.7.
任何帮助非常感谢,谢谢......
您不必手动设置type属性.请改用您创建的子类.
model = params[:app_module].delete(:type).constantize
model = AppModule unless model.is_a?(AppModule)
@app_module = model.new(params[:app_module])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1840 次 |
| 最近记录: |