首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 5.0.1中的CRUD、动词和操作

Rails 5.0.1中的CRUD、动词和操作
EN

Stack Overflow用户
提问于 2017-02-08 23:31:32
回答 1查看 385关注 0票数 0

在使用rails 5.0.1时,我有一个带有Subject Model的Subjects控制器,但在尝试使用

代码语言:javascript
复制
<% @subjects.each do |subject| %>
<tr>
  <td><%= subject.position %></td>
  <td><%= subject.name %></td>
  <td class="center"><%= subject.visible ? 'Yes' : 'No' %></td>
  <td class="center"><%= subject.pages.size %></td>
  <td class="actions">
    <%= link_to("Show", subject_path(subject.id), :class => 'action show') %>
    <%= link_to("Edit", '#', :class => 'action edit') %>
    <%= link_to("Delete", '#', :class => 'action delete') %>
  </td>
</tr>
<% end %>

我在这一行得到了一个未找到方法的错误。

代码语言:javascript
复制
subject_path(subject.id)

在进一步的研究中,我注意到在rails 5.0.1中,索引资源被移除,并以某种方式被显示所取代,我还确认了它的here。请有一个解决这个问题的方法,我需要如何显示一个资源列表(resource#index),也显示列表上的特定项目(resource#show)

EN

Stack Overflow用户

回答已采纳

发布于 2017-02-08 23:41:23

您在路由中使用了错误的方法。

resource是为singular resources设计的。这意味着只能存在一种资源的情况。

你想要的是resources

代码语言:javascript
复制
resources :subjects
# this would generate routes for an app wide configuration
resource :configuration 

当路由到对象时,您可以只传递记录本身:

代码语言:javascript
复制
# bad
subject_path(subject.id)
# good
subject_path(subject)
# better
link_to("Show", subject, class: 'action show')

因为这在模型上调用了#to_param,所以以后设置友好urls之类的东西变得很简单,这被认为是一种很好的做法。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42117223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档