刚开始接触rails,做活动通的项目,遇到的问题很多,大概遇到问题我会看书或者上网查阅相关资料,如果能直接通过这些方式直接得到答案,那当然最好,有的问题却不只单单通过查资料而直接得到答案的,需要自己学习、模仿、总结、理解后,才能解决。这里,我就说说我遇到的rails下的link_to和路由配置问题。
首先是link_to,问题是这样的,管理员在服务器端登录活动通后,进入用户管理页面,页面已列表的形式显示出所有的用户,管理员可以修改任意的某一用户的信息,后者删除某一用户。如果link_to只是单纯跳页面的话,只用:
=link_to 'name', 'url'
但是,这样并没有传递任何的参数,换句话说,点了link_to并不知道,你所要删除或修改的是哪一个用户。
解决的办法是,删除:
=link_to '删除',u, :method=>:delete,data:{confirm:'Are you sure?'}
这样使用了rails内置的delete方法,但同时要配置路由:
match 'user/delete/:id' =>'user#destroy',:via=>:delete,:as =>'user'
这时,一点link_to就把url里写的:id,即用户id传过去了。自定义一个destroy方法,在destroy方法里面利用传过来的用户id,调用方法是 params[:id] 再删除相应的用户就可以了。
修改的话就类似了,首先要配置路由:
get 'user/show/:id/admin_modify_password_page' => 'admin#admin_modify_password_page',:as=>admin
页面上:
=link_to '修改密码', admin_url(id:u.id)
这样就把相应要修改的用户id作为params传递给下一个页面或方法了。
最后总结link_to用法有:
link_to 'name', 'url'
link_to 'name', user_url(id:id)
rails内置方法如delete等 link_to 'name', user(id),:method=>:delete, :data=>{:params=>value}
link_to 'name' , user_path(:id=>id)
link_to 'name' , :style=>'style' , :class=> 'class'
如果不同的controlller link_to 'name' ,:controller=>'admin',:action=>'index',:param=>value
后来上网查了一些英文的官方文档,link_to还有 link_to_if、link_to_unless、link_to_unless_current,这些可以控制如当前用户是退出、未登录状态不能操作,或者在index页面显示information链接,在information页面显示index的链接,非常方便。
分享到:
相关推荐
例如,`form_for`辅助方法可以轻松创建用于创建和更新资源的表单,而`link_to`则用于生成链接,确保HTTP方法正确。 此外,Rails的ActiveRecord模型提供了强大的关联(Associations)功能,如has_many、belongs_to等...
此外,Rails的辅助方法如`link_to`和`form_for`,简化了视图中的链接和表单生成。 测试驱动开发(TDD)在Rails中被广泛采用。Rails内置了Test::Unit和RSpec等测试框架,开发者可以通过编写测试先于代码来确保程序的...
Rails提供了一系列的辅助方法,帮助开发者更轻松地构建视图,例如`form_for`, `link_to`, `button_to`等。 6. **ActiveSupport** 这是Rails的一个核心组件,包含了许多实用的工具类和方法,如时间处理、字符串...
8. **模板和辅助方法**:探讨了ERB、Haml、Slim等模板引擎的使用,以及视图中的辅助方法,如link_to、form_for等。 9. **安全与身份验证**:包括CSRF防护、哈希密码存储、授权策略(如CanCanCan)等内容,确保应用...
视图助手(Helper methods)是一系列用于帮助生成视图内容的函数,比如form_for、link_to等,它们可以使视图代码更简洁,更易于理解。 **6. Routing** Rails的路由系统(routes.rb)将URL映射到控制器的特定动作上...
- 视图辅助方法(View Helper):如`link_to`、`form_for`,简化HTML生成。 总之,"blog.tar.gz_Rails"提供了一个学习和研究Ruby on Rails开发的实例,涵盖了从基础的MVC架构到高级特性的全方位实践。通过解压、...
- `link_to` 和 `button_to`:这两个方法用于创建链接和按钮,例如`<%= link_to "Click me", say_hello_path %>`将创建一个指向Say控制器hello动作的链接。 7. **数据库管理**: - `rake db:create`:根据数据库...
7. **辅助方法**:Rails提供了许多辅助方法,如link_to、form_for等,帮助开发者快速构建链接和表单,减少了代码量。 8. **脚手架**:Rails的scaffold命令可以自动生成基本的CRUD(创建、读取、更新、删除)功能,...
8. **辅助方法**:Rails提供了一系列辅助方法,如`link_to`、`form_for`等,用于简化视图层的代码。 9. **测试**:Rails强调TDD(Test-Driven Development),提供了全面的测试框架,如RSpec和Minitest。学习如何...
Rails提供了许多内置的辅助方法和宏,如`form_for`用于创建表单,`link_to`用于生成链接,这使得创建动态网页变得简单。此外,Rails还支持RESTful设计原则,通过HTTP动词(GET、POST、PUT、DELETE)来处理不同类型的...
同时,别忘了在视图或控制器中使用`link_to`或`redirect_to`时,传递正确的路由名或URL。 2. **ActiveRecord关联错误**:Rails的ORM(对象关系映射)系统提供了丰富的关联方式,如`has_many`, `belongs_to`等。如果...
3. **辅助方法**:Rails 1.1.0引入了更多的辅助方法,如`link_to`、`form_for`等,这些方法简化了视图层的代码,使得开发者能快速构建用户界面。 4. **部分视图**:在1.1.0版本中,Rails增强了部分视图的功能,允许...
可以使用Rails的link_to辅助方法生成链接: ```erb <%= link_to "Sign in with Google", user_omniauth_authorize_path(:google_oauth2) %> ``` 这个过程涉及的主要知识点包括:Devise的身份认证机制、OmniAuth的...
= link_to "New Contact", new_contact_path, remote: true, class: "btn btn-primary" %> 它指向new_contact_path路由,但请注意remote: true 。 这告诉 Rails 使用 AJAX 调用此路由。 ContactsController的new...
7. **辅助方法(Helper Methods)**:学习如何创建和使用辅助方法来保持视图的整洁,如 form_for、link_to 等。 8. **插件(Plugins)**:熟悉 Rails 插件机制,了解如何安装和使用第三方库来扩展 Rails 功能。 9....
例如,当你在编写`link_to`时,插件会根据你的Rails路由配置自动生成可用的动作和资源,这样你就可以直接选择并插入正确的路由链接,而无需记忆复杂的路由语法。 **超级点击提供者(Hyperclick Provider)** 超级...
熟悉模板语法和辅助方法(如 `link_to`、`form_for` 等)能提高开发效率。 6. **Rails 部署和配置**:了解如何在生产环境中部署 Rails 应用,包括使用 Capistrano、Heroku 或其他 PaaS 平台,以及 Nginx、Apache、...
例如,Rails提供了一些方便的路由和辅助方法,如`link_to_remote`和`form_remote_for`,可以直接生成AJAX链接和表单,简化了前端与后端的交互。 然而,虽然Rails简化了AJAX开发,但仍然需要理解JavaScript、...
- **视图助手**:如`form_for`、`link_to`等,帮助创建表单和链接。 ### 8. **测试** - **RSpec**:一种行为驱动开发的测试框架,用于编写可读性强的测试。 - **Capybara**:模拟用户交互进行集成测试。 ### 9. **...