我知道这违反了ruby on rails约定,但是我对这个表的id不需要自动递增,而是我通过逻辑设置它.但是,它不会保存到数据库中.保存的所有内容都是为id保存为null.
def self.up
create_table :probes, :id => false do |t|
t.string :id
t.string :name
t.integer :user_id
t.boolean :online
t.timestamps
end
end
<% form_for @probe do |f| %>
<%= f.error_messages %>
<p>
<%= f.label "Site name" %><br />
<%= f.text_field :name %>
</p>
<p style="margin-left: 10%">
<%= f.label "Probe Key" %><br />
<%= f.text_field :id, :value => @token %>
</p>
<p style="margin-left: 20%">
<%= link_to "Back to List", probes_path %>
<%= f.submit "Submit",:style => "margin-left: 75px;" %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?或者除了new.html.erb文件之外还有哪些地方我应该更改/检查?
对于质量分配,无法访问:id字段.你需要手动设置它
@probe.id = params[:probe][:id]
在您的控制器代码中.
(如果你添加到列表中它也可能有用,一般来说你应该为从表单参数直接批量分配的每个模型设置,但是没有测试我不确定它是否会起作用,你可能仍然有手动设置):idattr_accessibleattr_accessible:id
| 归档时间: |
|
| 查看次数: |
3226 次 |
| 最近记录: |