我无法加载索引页面或只显示帮助路径。如果我只使用to_param
字段属于类的属性,例如first_name
,我就可以使用它。问题似乎是我通过使用{{}将两个字段(full_name
和first_name
)连接在一起来创建对象属性(last_name
)的数据1}}模型中的方法。根据故障排除,我知道可能出现的问题但不知道如何修复。有什么建议吗?
错误消息始终如下:
before_validation
模型
No route matches {:action=>"show", :controller=>"artists", :full_name=>#<Artist id: 2, full_name: "John">} missing required keys: [:full_name]
路线:
class Artist < ApplicationRecord
before_validation :fullname
def fullname
self.full_name = "#{first_name} #{last_name}"
end
def to_param
full_name
end
end
艺术家控制器:
resources :artists, only: [:show, :index], param: :full_name, constraints: { full_name: /[\w]+/ }
观点(Index.html.erb):
before_action :set_artist, only: [:show]
def set_artist
@artist = Artist.find_by(full_name: params[:full_name])
end
帮手路径:
<% @artists.each do |x| %>
<%= link_to "name", artist_path(x) %>
<% end %>