我道歉,如果这看起来像是一个简单的错误,我是铁道新手,您的建议和帮助将不胜感激。
User
和Advert
has_many
广告belongs_to
用户user
有id:10
advert
有id:6
,我正在尝试找到user's controller
的{{1}}。我尝试过以下方法:
id
advert
@advert = Advert.find(params[:id])
但没有成功。我不断得到以下的错误:
@advert = Advert.find(params[:advert_id])
和
@advert = @userr.adverts.find(params[:id])
我发现代码正在寻找带有Couldn't find Advert with 'id'=10 [WHERE "adverts"."userr_id" = ?]
的广告,当我真的想让它找到Couldn't find Advert with 'id'=10
在我的users_controller.rb
中id:10
在我的路线文件
中id:6
表示
def dashboard if current_user if current_user.adverts.present? @advert = Advert.find(params[:id]) end else redirect_to error_path end end
关系(Rails.application.routes.draw do devise_for :users resources :users do resources :adverts member do get 'dashboard' end end end
&has_many
)。我怎么找到 用户控制器中广告的ID。这是一个问题我 一直在努力解决。你的建议将不胜感激
答案 0 :(得分:1)
我不确定您的控制器中哪里出现此错误,哪些操作会导致问题。但是,这是一个用于属于主题的书签类的创建方法的示例,并且主题具有许多书签。
def create
@topic = Topic.friendly.find(params[:topic_id])
@bookmark = @topic.bookmarks.build(bookmark_params)
@bookmark.user_id = current_user.id
if @bookmark.save
flash[:notice] = "Bookmark saved."
redirect_to [@topic, @bookmark]
else
flash.now[:alert] = "Error saving bookmark."
render :new
end
end
您可以看到我找到与书签关联的主题,然后在找到用于创建关联的书签时使用该主题。书签params是一种私人方法。然后我将当前用户分配给书签。
查看广告和用户的完整控制器会很有帮助