使用to_param时,Rails辅助路径无法正常工作

时间:2018-03-21 17:23:18

标签: ruby-on-rails

我无法加载索引页面或只显示帮助路径。如果我只使用to_param字段属于类的属性,例如first_name,我就可以使用它。问题似乎是我通过使用{{}将两个字段(full_namefirst_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 %>

0 个答案:

没有答案