Ruby on rails 一个模型有两种不同的形式是安全的吗?

Ruby on rails 一个模型有两种不同的形式是安全的吗?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个名为Product的模型,它有以下列: create_table :products do |t| t.decimal :price t.string :name t.integer :offline_store_id t.integer :online_store_id t.date :product_date end 现在我为你在那里看到的协会制作了两种不同的形式: # using find_or_create_by webstore = onlin

我有一个名为Product的模型,它有以下列:

create_table :products do |t|
   t.decimal :price
   t.string  :name
   t.integer :offline_store_id
   t.integer :online_store_id
   t.date :product_date
end
现在我为你在那里看到的协会制作了两种不同的形式:

# using find_or_create_by
webstore = online_store_id
store = offline_store_id

<%= form_for @product do |f| %>   
   <%= f.text_field :price %>
   <%= f.text_field :name %>
   <%= f.date_select :product_date
   <%= f.text_field :webstore %>
<% end %>
另一个表单与之相同,它只是将:webstore改为:store。这样做的原因是为在线产品制作表单,为离线产品制作表单。我关心的是,即使两种表格中都没有该字段,该字段是否仍然可以填写。产品不应同时属于在线和离线商店


这样做行吗?这个字段真的消失了吗?或者即使我没有可用的字段,黑客仍然可以填写它吗

如何对域和用户界面进行建模与黑客/安全相关的问题是一个独立的问题。如果需要的话,每个模型有多个表单是完全可以的。您的安全问题应该与域模型分开解决

我建议您看看如何为产品建模。您的产品应该只知道它的属性以及它属于某个商店。让Store类包含其脱机/联机状态

另外,我认为你在这个表单上做的太多了,看起来你在产品表单上创建了商店。我建议使用单独的表单进行门店/产品管理,并将产品表单上的门店字段设置为选择列表

迁移

create_table :products do |t|
  t.decimal :price
  t.string  :name
  t.integer :store_id
  t.date :product_date
end

create_table :stores do |t|
  t.boolean :online
  .....
模型


如何对域和UI进行建模与黑客/安全相关的问题是一个独立的问题。如果需要的话,每个模型有多个表单是完全可以的。您的安全问题应该与域模型分开解决

我建议您看看如何为产品建模。您的产品应该只知道它的属性以及它属于某个商店。让Store类包含其脱机/联机状态

另外,我认为你在这个表单上做的太多了,看起来你在产品表单上创建了商店。我建议使用单独的表单进行门店/产品管理,并将产品表单上的门店字段设置为选择列表

迁移

create_table :products do |t|
  t.decimal :price
  t.string  :name
  t.integer :store_id
  t.date :product_date
end

create_table :stores do |t|
  t.boolean :online
  .....
模型


谢谢,谢谢你提供的额外信息。我会尝试使用它。谢谢你,也感谢你提供的额外信息。我会尝试使用它。
online_status = true # switch this depending on online status
collection_select(:product, :store_id, Store.find_all_by_online(online_status), :id, :name, :prompt => 'Please select store')