如何解决重新加载 rvm 3.0.0 重新安装包,现在在操作视图中获取未定义的方法:模板
背景:我正在尝试生成一个用户引导列表,其中允许用户进行两个选择(商店和买家)。保存列表的表没有购买者的名字,但有指向商店的 store_id。买家的名字是从第三张表中得出的。
在我不得不从 rvm 卸载 rails-3.0.0 之前,这段代码运行良好。重新安装并执行 bundle install 后,这个 simple_form form-inline 代码开始抛出以下日志中显示的错误:
<%= simple_form_for :search,url: list_path,method: "GET",html: { class: 'form-inline' } do |f| %><br>
<%= f.input :id,collection: @stores,label: false %></td><br>
<td><br>
<%= f.collection_select :buyer,@buyers,:buyer,include_blank: true %><br>
</td><td>
<%= f.submit "Submit",class: "btn btn-primary" %><br>
<% end %>
</td>
</tr></table>
数组@store 和@buyer 是在 def list 节的 shop 控制器中生成的。此处显示:
def list
@search = params["search"]
logger.debug "\n\n#{@search}.inspect\n\n"
@lists = Shop.get_my_list(params["search"])
@elists = Shop.find_by_sql("select distinct S.vendor,S.item,S.cnt,S.coupon from SHOPS AS S left join MUPCs as M on m.item = s.item WHERE M.ID IS NULL")
@buyers = Shop.find_by_sql("select distinct buyer,buyer from mupcs")
end
日志生成:
Started GET "/list?search%5Bid%5D=1&search%5Bbuyer%5D=&commit=Submit" for 10.0.0.3 at 2021-01-15 21:24:15 -0800<br>
Processing by ShopsController#list as HTML
Parameters: {"search"=>{"id"=>"1","buyer"=>""},"commit"=>"Submit"}<br>
Shop Load (0.2ms) select id,name from Stores<br>
↳ app/controllers/shops_controller.rb:7:in `get_stores'
Shop Load (0.2ms) select distinct location from Mupcs<br>
↳ app/controllers/shops_controller.rb:8:in `get_stores'
{"id"=>"1","buyer"=>""}.inspect
inside get_my_list |1|
Shop Load (0.2ms) <br>select distinct m.buyer,m.location,s.vendor,s.item,s.cnt,s.coupon,s.store_id from shops as s,mupcs as m where m.item = s.item and s.store_id = 1 order by m.buyer,m.location<br>
↳ app/models/shop.rb:54:in `get_my_list'
Shop Load (0.2ms) <br>select distinct S.vendor,S.coupon from SHOPS AS S left join MUPCs as M on m.item = s.item WHERE M.ID IS NULL<br>
↳ app/controllers/shops_controller.rb:36:in `list'
Shop Load (0.2ms) <br>select distinct buyer,buyer from mupcs<br>
↳ app/controllers/shops_controller.rb:38:in `list'<br>
Rendering layout layouts/application.html.erb<br>
Rendering shops/list.html.erb within layouts/application<br>
Rendered shops/list.html.erb within layouts/application (Duration: 5.2ms | Allocations: 4177)<br>
Rendered layout<br> layouts/application.html.erb (Duration: 5.4ms | Allocations: 4246)<br>
Completed 500 Internal Server Error in 12ms (ActiveRecord: 0.9ms | Allocations: 7511)
ActionView::Template::Error (undefined method `id' for #<ActionController::Parameters {"id"=>"1","buyer"=>""} permitted: false>):
7: <tr>
8: <td valign="top">
9: <%= simple_form_for :search,html: { class: 'form-inline' } do |f| %>
10: <%= f.input :id,label: false %></td>
11: <td>
12: <%= f.collection_select :buyer,include_blank: true %>
13: </td><td>
解决方法
找到了解决办法。我不得不创建一个新的私人白名单并将内联名称从“搜索”更改为“genlist”,但现在它似乎可以工作了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。