Tru*_*ran 1 ruby-on-rails params
我有一个具有嵌套资源链接的Opportunity模型.在我的views/opportunities/show页面中,当我点击其中一个链接的"DestroY"时,我收到错误:
param丢失或值为空:link
它抱怨的代码片段是:
def link_params
params.require(:link).permit(:description, :link_url)
end
Run Code Online (Sandbox Code Playgroud)
这是我的破坏代码:
def destroy
@opportunity = Opportunity.find(params[:opportunity_id])
@link = @opportunity.links.find(link_params)
@link.destroy
respond_to do |format|
format.html { redirect_to links_url, notice: 'Link was successfully destroyed.' }
format.json { head :no_content }
end
Run Code Online (Sandbox Code Playgroud)
改变这个:
@link = @opportunity.links.find(link_params)
Run Code Online (Sandbox Code Playgroud)
对此:
@link = @opportunity.links.find(params[:id])
Run Code Online (Sandbox Code Playgroud)
link在你的参数中没有一个,你只有一个id和一个opportunity_id.
另外,你有这个:
respond_to do |format|
format.html { redirect_to links_url, notice: 'Link was successfully destroyed.' }
...
end
Run Code Online (Sandbox Code Playgroud)
我猜你有links资源嵌套在里面opportunities.所以没有links_url.你需要使用,即opportunities_links_url(@opportunity).
最后,请注意您可能希望opportunities_links_path而不是opportunities_links_url除非您在此实例中明确需要绝对URL.
您可以通过运行发现您的链接助手rake routes.最左边的"前缀"列中的所有内容都可以使用_url或_path在末尾调用以生成URL.
| 归档时间: |
|
| 查看次数: |
13888 次 |
| 最近记录: |