嗨,我对 Rails 很陌生,在尝试添加新的发布方法时遇到了麻烦。
我想创建一个启用用户的新方法。
所以我修改了我的用户控制器,使其具有以下方法
def enable
if (!@user.enabled)
@user.enabled = true;
if @user.save
UserMailer.send_enabled_message(@user).deliver
redirect_to users_url, notice: 'User was successfully enabled.'
else
redirect_to users_url, notice: 'Could not enable user.'
end
else
redirect_to users_url, notice: 'Could not enable user.'
end
结尾
我在我的路线中添加了以下内容:
match 'users/:id' => 'users#enable', :via => 'post', :action => :enable
并将以下内容添加到显示用户表的视图中:
<td><%= link_to 'Enable', user, method: :enable, data: { confirm: 'Are you sure?' } %></td>
这一切似乎都有效,但我认为我的路线已经覆盖了我的登录帖子,因为我无法再登录了。我需要创建一个新表单还是可以像这样快速提交?
同样,当您使用 link_to 时,我该<%= link_to 'enable', enable_user(user) %>
怎么做:我需要如何/在哪里创建该enable_user
方法?
感谢 GoGoCarl 现在可以正常工作了。不得不将我的路线更改为:
resources :users do
post 'enable', on: :member
end
我对此的看法:
<td><%= link_to 'Enable', enable_user_path(user), method: :enable, data: { confirm: 'Are you sure?' } %></td>