#<#<Class:0x8daee70>:0x8dbdc30> 的未定义方法“refreshProfile_affinity_path”
undefined method `refreshProfile_affinity_path' for #<#<Class:0x8daee70>:0x8dbdc30>
我在标题中遇到了错误。我不确定路由、控制器和索引到底应该怎么写。
我正在尝试在如下所示的 index.html.erb
视图中创建一个 'Refresh' 按钮:
...
<td><%= link_to 'Refresh', refreshProfile_affinity_path(a), method: :put %></td>
...
它在routes.rb
中使用这条路线:
resources :affinities
put 'affinities/refreshProfile/:id' => 'affinities#refreshProfile'
正在尝试访问 affinities_controller.erb
中的以下方法:
...
def refreshProfile
@affinity = Affinity.find(params[:id])
new_profile_affinity = User.find(@affinity.user_A_id).profile_affinity_with(User.find(@affinity.user_B_id))
if @affinity.update_attributes(:integer, new_profile_affinity)
redirect_to @affinity
end
end
...
有什么问题吗?非常感谢任何帮助!
您需要向您的路线添加一个 as:
,这是为辅助方法指定前缀的原因,也是您当前收到未定义方法错误的原因,例如
put 'affinities/refreshProfile/:id' => 'affinities#refreshProfile',
as: 'refreshProfile_affinity'
refreshProfile_affinity_path
这样就可以了,或者你可以给它起一个更短、更活泼的名字,例如as: 'refreshProfile'
然后使用 refreshProfile_path
.
我在标题中遇到了错误。我不确定路由、控制器和索引到底应该怎么写。
我正在尝试在如下所示的 index.html.erb
视图中创建一个 'Refresh' 按钮:
...
<td><%= link_to 'Refresh', refreshProfile_affinity_path(a), method: :put %></td>
...
它在routes.rb
中使用这条路线:
resources :affinities
put 'affinities/refreshProfile/:id' => 'affinities#refreshProfile'
正在尝试访问 affinities_controller.erb
中的以下方法:
...
def refreshProfile
@affinity = Affinity.find(params[:id])
new_profile_affinity = User.find(@affinity.user_A_id).profile_affinity_with(User.find(@affinity.user_B_id))
if @affinity.update_attributes(:integer, new_profile_affinity)
redirect_to @affinity
end
end
...
有什么问题吗?非常感谢任何帮助!
您需要向您的路线添加一个 as:
,这是为辅助方法指定前缀的原因,也是您当前收到未定义方法错误的原因,例如
put 'affinities/refreshProfile/:id' => 'affinities#refreshProfile',
as: 'refreshProfile_affinity'
refreshProfile_affinity_path
这样就可以了,或者你可以给它起一个更短、更活泼的名字,例如as: 'refreshProfile'
然后使用 refreshProfile_path
.