strategies 表的主键是 date 和 code,在 show.ERB 中,我已经拿到@strategy实体了,也可以访问@strategy.code,但是为什么 form_for 会提示 missing required keys: [:id] 呢?为什么还要 id,我必须要在 model 中显式声明主键么?该怎么声明。
model 实际上我没有定义任何方法:
class Strategy < ApplicationRecord
end
routes.rb
get 'strategies/new'
get 'strategies/show'
get 'strategies/index'
resources :strategies
StrategiesController
def show
@strategy = Strategy.where("code = #{@code} and date=#{@date}").first
end
Strategies#show erb
<div>
<%=@strategy.date%><br>#正常显示
<%=@strategy.code%><br>#正常显示
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@strategy) do |f| %>#missing required keys: [:id],这个erb中实际我已经得到@strategy的实体了,为什么还要id,我必须要在model中显式声明主键么?该怎么声明
<%= f.label :code %>
<%= f.text_field :code %>
<%= f.label :date %>
<%= f.text_field :date %>
<%= f.submit "Create my account", class: "btn btn-primary" %>
<% end %>
</div>
</div>
我是由另一个表 dayline 跳转到 strategie 的,是一个 link,
<%=link_to image_tag("/a.jpg"), { :controller => 'strategies', :action => 'show' }, id: "getstategy"%>
code 和 date 都是动态的,触发这个 link 在 js 中是这样写的,和这里有关么?
$('.fkwebp').on('click', function (event) {
const {code,baseDate,name,offsetDate} = getStockInfo(this,event);
$("#getstategy").attr("href",`/strategies/show?code='${code}'&date='${offsetDate}'`);
$("#getstategy img").click()
});