error_messages_for

本文解答了一个关于Ruby on Rails应用中如何正确使用error_messages_for显示表单验证错误的问题。作者解释了error_messages_for的工作原理,并给出了实例说明如何针对不同变量名的对象正确调用此方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 在http://www.ruby-forum.com/topic/114652#new论坛中看到如下问题:
   I have a database table called "hvd_codes", the model is called HvdCode.
In my form partial, what should I enter as a parameter to
error_messages_for? I've tried <%= error_messages_for 'hvd_codes' %> but nothing is
displayed.
IRC error_messages_for simply looks for a global variable named after
its parameter and parse the result 'errors' called on it.
So if you have a @hvdcode which is a HvdCode instance, just use
'hvdcode'. If you had a @foo instance of HvdCode, you'd use 'foo'...
EPRobot@EPRobot:~/robot_ws$ cd ~/catkin_ws bash: cd: /home/EPRobot/catkin_ws: No such file or directory EPRobot@EPRobot:~/robot_ws$ cd ~/catkin_ws # 进入工作空间 bash: cd: /home/EPRobot/catkin_ws: No such file or directory EPRobot@EPRobot:~/robot_ws$ catkin_make # 重新编译 Base path: /home/EPRobot/robot_ws Source space: /home/EPRobot/robot_ws/src Build space: /home/EPRobot/robot_ws/build Devel space: /home/EPRobot/robot_ws/devel Install space: /home/EPRobot/robot_ws/install #### #### Running command: "make cmake_check_build_system" in "/home/EPRobot/robot_ws/build" #### #### #### Running command: "make -j4 -l4" in "/home/EPRobot/robot_ws/build" #### [ 0%] Built target _catkin_empty_exported_target [ 0%] Built target tf2_msgs_generate_messages_nodejs [ 0%] Built target move_base_msgs_generate_messages_eus [ 0%] Built target hibot_follower_node [ 0%] Built target tf2_msgs_generate_messages_py [ 0%] Built target tf2_msgs_generate_messages_lisp [ 0%] Built target tf2_msgs_generate_messages_eus [ 0%] Built target tf2_msgs_generate_messages_cpp [ 0%] Built target tf_generate_messages_nodejs [ 0%] Built target tf_generate_messages_lisp [ 0%] Built target tf_generate_messages_eus [ 0%] Built target tf_generate_messages_cpp [ 0%] Built target tf_generate_messages_py [ 0%] Built target sensor_msgs_generate_messages_py [ 0%] Built target sensor_msgs_generate_messages_lisp [ 0%] Built target sensor_msgs_generate_messages_eus [ 0%] Built target std_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_lisp [ 0%] Built target sensor_msgs_generate_messages_cpp [ 0%] Built target std_msgs_generate_messages_eus [ 0%] Built target rosgraph_msgs_generate_messages_nodejs [ 0%] Built target actionlib_msgs_generate_messages_nodejs [ 0%] Built target rosgraph_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_cpp [ 0%] Built target actionlib_msgs_generate_messages_py [ 0%] Built target actionlib_msgs_generate_messages_lisp [ 0%] Built target actionlib_msgs_generate_messages_eus [ 0%] Built target actionlib_generate_messages_eus [ 0%] Built target actionlib_msgs_generate_messages_cpp [ 0%] Built target rosgraph_msgs_generate_messages_eus [ 0%] Built target sensor_msgs_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_cpp [ 0%] Built target actionlib_generate_messages_cpp [ 0%] Built target rosgraph_msgs_generate_messages_lisp [ 0%] Built target actionlib_generate_messages_lisp [ 0%] Built target actionlib_generate_messages_nodejs [ 0%] Built target std_msgs_generate_messages_nodejs [ 0%] Built target actionlib_generate_messages_py [ 0%] Built target roscpp_generate_messages_lisp [ 0%] Built target geometry_msgs_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_py [ 0%] Built target roscpp_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_eus [ 0%] Built target geometry_msgs_generate_messages_eus [ 0%] Built target rosgraph_msgs_generate_messages_cpp [ 0%] Built target geometry_msgs_generate_messages_cpp [ 0%] Built target geometry_msgs_generate_messages_lisp [ 0%] Built target geometry_msgs_generate_messages_py [ 0%] Built target move_base_msgs_generate_messages_py [ 0%] Built target move_base_msgs_generate_messages_lisp [ 0%] Built target move_base_msgs_generate_messages_nodejs [ 0%] Built target move_base_msgs_generate_messages_cpp [ 0%] Built target _lslidar_msgs_generate_messages_check_deps_LslidarPacket [ 0%] Built target _lslidar_msgs_generate_messages_check_deps_LslidarScan [ 0%] Built target _lslidar_msgs_generate_messages_check_deps_LslidarSweep [ 0%] Built target _lslidar_msgs_generate_messages_check_deps_LslidarPoint [ 0%] Built target _lslidar_msgs_generate_messages_check_deps_LslidarDifop [ 0%] Built target _rospy_message_converter_generate_messages_check_deps_Uint8Array3TestMessage [ 0%] Built target _rospy_message_converter_generate_messages_check_deps_NestedUint8ArrayTestMessage [ 0%] Built target _rospy_message_converter_generate_messages_check_deps_Uint8ArrayTestMessage [ 0%] Built target nav_msgs_generate_messages_eus [ 0%] Built target _rospy_message_converter_generate_messages_check_deps_NestedUint8ArrayTestService [ 0%] Built target ls01d [ 0%] Built target _rospy_message_converter_generate_messages_check_deps_TestArray [ 0%] Built target nav_msgs_generate_messages_py [ 0%] Built target nav_msgs_generate_messages_nodejs [ 0%] Built target nav_msgs_generate_messages_lisp [ 0%] Built target nav_msgs_generate_messages_cpp [ 1%] Built target gtest [ 2%] Built target hlds_laser_segment_publisher [ 2%] Built target hlds_laser_publisher [ 3%] Built target iiirobotics_lidar2_node_client [ 4%] Built target iiirobotics_lidar2_node [ 4%] Built target astra_camera_gencfg [ 4%] Built target _astra_camera_generate_messages_check_deps_GetUVCWhiteBalance [ 4%] Built target _astra_camera_generate_messages_check_deps_SetUVCExposure [ 4%] Built target _astra_camera_generate_messages_check_deps_SetLaser [ 4%] Built target _astra_camera_generate_messages_check_deps_GetSerial [ 4%] Built target _astra_camera_generate_messages_check_deps_SetUVCGain [ 4%] Built target _astra_camera_generate_messages_check_deps_ResetIRGain [ 4%] Built target _astra_camera_generate_messages_check_deps_GetIRGain [ 4%] Built target _astra_camera_generate_messages_check_deps_SwitchIRCamera [ 4%] Built target _astra_camera_generate_messages_check_deps_SetIRFlood [ 4%] Built target _astra_camera_generate_messages_check_deps_ResetIRExposure [ 4%] Built target _astra_camera_generate_messages_check_deps_GetDeviceType [ 4%] Built target _astra_camera_generate_messages_check_deps_SetUVCWhiteBalance [ 4%] Built target _astra_camera_generate_messages_check_deps_GetUVCGain [ 4%] Built target _astra_camera_generate_messages_check_deps_SetIRExposure [ 4%] Built target _astra_camera_generate_messages_check_deps_GetUVCExposure [ 4%] Built target _astra_camera_generate_messages_check_deps_GetCameraInfo [ 5%] Built target astra_usb_reset [ 5%] Built target _astra_camera_generate_messages_check_deps_GetIRExposure [ 5%] Built target _astra_camera_generate_messages_check_deps_SetLDP [ 5%] Built target _astra_camera_generate_messages_check_deps_SetIRGain [ 5%] Built target rplidarNodeClient [ 6%] Built target rplidarNode [ 7%] Built target eprobot_joy_node [ 7%] Built target lslidar_serial [ 7%] Building CXX object lslidar_driver/CMakeFiles/lslidar_input.dir/src/input.cc.o [ 7%] Built target std_srvs_generate_messages_cpp [ 7%] Built target bond_generate_messages_cpp [ 7%] Built target nodelet_generate_messages_py [ 7%] Built target bond_generate_messages_nodejs [ 7%] Built target dynamic_reconfigure_generate_messages_lisp [ 7%] Built target nodelet_generate_messages_lisp [ 7%] Built target nodelet_generate_messages_nodejs [ 7%] Built target nodelet_generate_messages_eus [ 7%] Built target bond_generate_messages_eus [ 7%] Built target dynamic_reconfigure_generate_messages_cpp [ 7%] Built target dynamic_reconfigure_generate_messages_py [ 7%] Built target dynamic_reconfigure_generate_messages_eus [ 7%] Built target bond_generate_messages_lisp [ 7%] Built target bond_generate_messages_py [ 7%] Built target nodelet_generate_messages_cpp Scanning dependencies of target topic_tools_generate_messages_py [ 7%] Built target dynamic_reconfigure_generate_messages_nodejs [ 7%] Built target dynamic_reconfigure_gencfg [ 7%] Built target topic_tools_generate_messages_py Scanning dependencies of target topic_tools_generate_messages_eus Scanning dependencies of target topic_tools_generate_messages_lisp Scanning dependencies of target topic_tools_generate_messages_cpp [ 7%] Built target topic_tools_generate_messages_lisp [ 7%] Built target topic_tools_generate_messages_eus Scanning dependencies of target std_srvs_generate_messages_py Scanning dependencies of target pcl_ros_gencfg [ 7%] Built target topic_tools_generate_messages_cpp [ 7%] Built target std_srvs_generate_messages_py Scanning dependencies of target diagnostic_msgs_generate_messages_py [ 7%] Built target pcl_ros_gencfg Scanning dependencies of target diagnostic_msgs_generate_messages_nodejs [ 7%] Built target diagnostic_msgs_generate_messages_py Scanning dependencies of target nodelet_topic_tools_gencfg [ 7%] Built target diagnostic_msgs_generate_messages_nodejs Scanning dependencies of target pcl_msgs_generate_messages_eus [ 7%] Built target nodelet_topic_tools_gencfg [ 7%] Built target pcl_msgs_generate_messages_eus Scanning dependencies of target topic_tools_generate_messages_nodejs Scanning dependencies of target diagnostic_msgs_generate_messages_lisp Scanning dependencies of target std_srvs_generate_messages_nodejs [ 7%] Built target topic_tools_generate_messages_nodejs [ 7%] Built target diagnostic_msgs_generate_messages_lisp [ 7%] Built target std_srvs_generate_messages_nodejs Scanning dependencies of target pcl_msgs_generate_messages_nodejs Scanning dependencies of target std_srvs_generate_messages_lisp Scanning dependencies of target diagnostic_msgs_generate_messages_cpp [ 7%] Built target pcl_msgs_generate_messages_nodejs [ 7%] Built target std_srvs_generate_messages_lisp [ 7%] Built target diagnostic_msgs_generate_messages_cpp Scanning dependencies of target diagnostic_msgs_generate_messages_eus Scanning dependencies of target pcl_msgs_generate_messages_lisp [ 7%] Built target diagnostic_msgs_generate_messages_eus Scanning dependencies of target pcl_msgs_generate_messages_cpp [ 7%] Built target pcl_msgs_generate_messages_lisp Scanning dependencies of target std_srvs_generate_messages_eus [ 7%] Built target pcl_msgs_generate_messages_cpp Scanning dependencies of target pcl_msgs_generate_messages_py [ 7%] Built target std_srvs_generate_messages_eus Scanning dependencies of target _robot_pose_ekf_generate_messages_check_deps_GetStatus [ 7%] Built target pcl_msgs_generate_messages_py Scanning dependencies of target sc_mini Scanning dependencies of target amcl_pf [ 7%] Building CXX object lidar/sc_mini/CMakeFiles/sc_mini.dir/src/sc_mini.cpp.o [ 7%] Built target _robot_pose_ekf_generate_messages_check_deps_GetStatus [ 7%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_pf.dir/src/amcl/pf/pf.c.o Scanning dependencies of target amcl_map [ 7%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_map.dir/src/amcl/map/map.c.o [ 7%] Building CXX object navigation-melodic/amcl/CMakeFiles/amcl_map.dir/src/amcl/map/map_cspace.cpp.o [ 7%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_pf.dir/src/amcl/pf/pf_kdtree.c.o [ 7%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_pf.dir/src/amcl/pf/pf_pdf.c.o [ 8%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_pf.dir/src/amcl/pf/pf_vector.c.o In file included from /home/EPRobot/robot_ws/src/lslidar_driver/src/input.cc:18:0: /home/EPRobot/robot_ws/src/lslidar_driver/include/lslidar_driver/input.h:35:10: fatal error: lslidar_msgs/LslidarPacket.h: No such file or directory #include <lslidar_msgs/LslidarPacket.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. lslidar_driver/CMakeFiles/lslidar_input.dir/build.make:62: recipe for target 'lslidar_driver/CMakeFiles/lslidar_input.dir/src/input.cc.o' failed make[2]: *** [lslidar_driver/CMakeFiles/lslidar_input.dir/src/input.cc.o] Error 1 CMakeFiles/Makefile2:8876: recipe for target 'lslidar_driver/CMakeFiles/lslidar_input.dir/all' failed make[1]: *** [lslidar_driver/CMakeFiles/lslidar_input.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 8%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_pf.dir/src/amcl/pf/eig3.c.o [ 8%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_pf.dir/src/amcl/pf/pf_draw.c.o [ 10%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_map.dir/src/amcl/map/map_range.c.o [ 10%] Linking C shared library /home/EPRobot/robot_ws/devel/lib/libamcl_pf.so [ 10%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_map.dir/src/amcl/map/map_store.c.o [ 10%] Building C object navigation-melodic/amcl/CMakeFiles/amcl_map.dir/src/amcl/map/map_draw.c.o [ 10%] Built target amcl_pf [ 10%] Linking CXX shared library /home/EPRobot/robot_ws/devel/lib/libamcl_map.so [ 10%] Built target amcl_map [ 11%] Linking CXX executable /home/EPRobot/robot_ws/devel/lib/sc_mini/sc_mini [ 11%] Built target sc_mini Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j4 -l4" failed EPRobot@EPRobot:~/robot_ws$ echo $ ROS_PACKAGE_PATH # 检查包路径 setup.bash # 重载环境 roscd your_package $ ROS_PACKAGE_PATH # 测试能否进入包目录 EPRobot@EPRobot:~/robot_ws$ source devel/setup.bash # 重载环境 EPRobot@EPRobot:~/robot_ws$ roscd your_package # 测试能否进入包目录 roscd: No such package/stack 'your_package' EPRobot@EPRobot:~/robot_ws$ <depend>roscpp</depend> bash: syntax error near unexpected token `newline' EPRobot@EPRobot:~/robot_ws$ <depend>std_msgs</depend> bash: syntax error near unexpected token `newline' EPRobot@EPRobot:~/robot_ws$ rosdep install --from-paths src --ignore-src -y ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: robot_pose_ekf: Cannot locate rosdep definition for [bfl] track_detection: Cannot locate rosdep definition for [opencv] astra_camera: Cannot locate rosdep definition for [libuvc] EPRobot@EPRobot:~/robot_ws$ chmod +x src/your_package/src/node_file.cpp # 添加执行权限 chmod: cannot access 'src/your_package/src/node_file.cpp': No such file or directory EPRobot@EPRobot:~/robot_ws$ rosrun your_package executable_name # 直接运行节点 [rospack] Error: package 'your_package' not found EPRobot@EPRobot:~/robot_ws$
07-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值