相关疑难解决方法(0)

没有路由匹配 - 缺少必需的键[:id]

背景

我正在我的应用程序中实现一项功能,允许用户评价和查看图片.

我的问题源于嵌套审查图片资源中的资源,特别是在我的Review#Edit函数中.错误消息明确声明缺少必需的键:[:id]

错误信息

ActionController::URLGenerationError in Reviews#Edit
No route matches {:action=>"show", :controller=>"reviews", :format=>nil, :picture_id=>#<Review id: 4, username: "DarkMouse", body: "Updating review", picture_id: 11, created_at: "2014-08-14 03:26:52", updated_at: "2014-08-14 03:55:29">, :id=>nil} missing required keys: [:id]
Undefined method 'reviews_path' for #<#<Class:0x45c1b00>:0x39ae810>
Extracted source (Around line #7):
4 <div class = 'center'>
5   <div class = 'center'>
6 
7     <% form_for [:picture, @review] do |f| %>
8
9      <p>
10        <%= f.label :username, :class => 'marker' %><br /> 
Run Code Online (Sandbox Code Playgroud)

我在Stack Overflow.com上搜索了答案(我的参考文献在底部给出)并被建议这样做.

<td><%= link_to 'Edit', …
Run Code Online (Sandbox Code Playgroud)

ruby nested ruby-on-rails

4
推荐指数
1
解决办法
1万
查看次数

Rails:没有路由匹配...缺少必需的键:[:id]

完整错误:

No route matches {:id=>#<Reminder id: nil, medication: nil, time: nil, created_at: nil, updated_at: nil, user_id: 1>} missing required keys: [:id]
Run Code Online (Sandbox Code Playgroud)

以下是index.html.erb中导致错误的代码:

<tbody>
    <% @reminders.each do |reminder| %>
      <tr <%= dom_id(reminder) %>>
        <td><%= reminder.medication %></td>
        <td><%= reminder.time %></td>
        <td>
          <%= link_to "Edit", edit_reminder_path(reminder) %>
          or
          <%= link_to 'Remove', reminder, method: :delete, data: { confirm: 'Are you sure?' } %>
      </td>
      </tr>
    <% end %>
  </tbody>
Run Code Online (Sandbox Code Playgroud)

楷模:

class Reminder < ActiveRecord::Base
    validates :medication, presence: true
    belongs_to :user
end
class User < …
Run Code Online (Sandbox Code Playgroud)

routes ruby-on-rails

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

ruby-on-rails ×2

nested ×1

routes ×1

ruby ×1