我有一个页面在发送电子邮件,ID不通过
http://localhost:3000/email/correspond?id=6
这是发送电子邮件的形式。当发送其更改为:
http://localhost:3000/email/correspond
,并引发了错误; Couldn't find User with 'id'=
这是由
def set_user
@user = User.find(params[:id])
end
这是email_controller引起的(见下文)
,因为ID在发送URL给我无法理解的问题。
有人可以解释一下吗?
从email_controller.rb
`
def correspond
@cuser = @current_user
@recipient = @user
@title = "Email"
if param_posted?(:message)
@message = Message.new(params[:message])
if @message.valid?
PostMailer.say_hello(@cuser, @recipient, @message).deliver_now
flash[:notice] = "Email sent."
redirect_to user_path(@recipient)
end
end
end
def set_user
@user = User.find(params[:id])
end`
的routes.rb
Eskvalleytales::Application.routes.draw do
root :to => 'users#index'
get 'user/:id' => 'user#show'
get 'user/search' => 'user#search'
resource :sessions
get 'session/destroy' => 'sessions#destroy'
get 'friendship/accept' => 'friendship#accept'
get 'friendship/decline' => 'friendship#decline'
get 'friendship/cancel' => 'friendship#cancel'
get 'friendship/delete' => 'friendship#delete'
get 'friendship/create' => 'friendship#create'
get 'email/correspond' => 'email#correspond'
post 'email/correspond' => 'email#correspond'
resources :comments
resources :users
resources :subcomments
resources :profiles
resources :emails
resources :users do
resources :comments do
resources :subcomments
end
end
resources :comments do
resources :subcomments
end
resources :users do
resources :emails
resources :new_file
end
resources :users do
resources :emails do
end
end
resources :users do
resources :fiendships
end
resources :users do
resources :subcomments
end
end
感谢那些工作。我必须得到'email /对应/:id'=>'email#对应'以及 – gleb
得到?嗯.....好吧。是的。当然。很高兴它的工作 –
那么为什么要'user/id'=>'user#show'没有分号?这让我感到困惑。 – gleb