我已经开发了一个应用程序,用户可以登录并查看他们的事件。可以单击事件,并在事件显示页面中添加歌曲。我遇到的问题是,当您在填写歌曲字段后单击submit时,它会给我一个错误,因为它找不到歌曲要添加的事件id。如何定义一个current_event方法来从用户检索单击事件?到目前为止,我的歌曲控制器就是这样的:
class SongsController < ApplicationController
def create
@song = current_event.songs.build(songs_params)
if @song.save
flash[:success] = "Song created"
redirect_to root_url
else
flash[:error] = "Failed"
end
end
def destroy
end
private
def micropost_params
params.require(:song).permit(:artist, :title, :genre)
end
end发布于 2016-12-20 06:51:30
我认为你需要定义嵌套的路线。
也许,在routes.rb上:
resources :events do
resources :songs
end现在,通往像localhost:3000/events/1/songs/new这样的新歌的道路
你有params[:event_id] = 1
在您的控制器上,动作创建,您可以调用
current_event = Event.find(params[:event_id])https://stackoverflow.com/questions/41236329
复制相似问题