【发布时间】:2019-06-28 15:32:05
【问题描述】:
注意:我是 RoR 的新手;我的语法是haml
在view 中,我在 if 语句中使用了一个参数,如下所示:
- if @progress_board.cover_image.present?
每次我的代码到达它时,我都会收到以下错误:
ActiveRecord::RecordNotFound (Couldn't find ProgressBoard with 'id'=):
app/controllers/progress_boards_controller.rb:340:in `get_panel_data'
首先,cover_image 在我的 ProgressBoard model 中声明。我确信这是有效的,因为我设法显示了这个 cover_image。
在我的controller 中,@progress_board 在我的方法中声明:
def get_panel_data
@progress_board = ProgressBoard.find(params[:progress_board_id])
...
end
这是我的route.rb 与问题相关的文件部分:
resources :progress_boards do
collection do
get :get_progress_data
get :get_panel_data
get :render_tab
end
member do
get :open_or_archive
get :pbbackground
get :remove_cover
get :get_panel_data
end
end
我已经尝试用(params[:progress_board]) 和(params[:id]) 替换(params[:progress_board_id]),但没有一个成功
我错过了什么?
【问题讨论】:
-
应该是
params[:id],错误是因为您发送的id与持久化的ProgessBoard不对应
标签: ruby-on-rails routes