我正在使用active_model_attributes gem定义属性,并在不从ActiveRecord继承的类中使用验证。
当这些验证失败时,我正在处理错误。当模型无效时,我提出了一个例外:
String userInputText = userInput.getText(); // read the text from the JTextInput
myComboBox.addItem(userInputText); // add it as a new Item to the combobox
此后,我执行救援操作并调用Proc来重定向用户并显示错误消息:
public class MyProgram extends JFrame {
// here you declare your global variables
private JTextInput userInput;
private JButton okButton;
private JComboBox myComboBox;
public MyProgram () {
// here you create your objects
okButton = new JButton("OK");
myComboBox = new JComboBox<>();
userInput = new JTextField();
// then you initialize them
myComboBox.setModel(new DefaultComboBoxModel<>(new String[] { "First Item" }));
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
// and that is the code that gets executed once the user clicks the button
String userInputText = userInput.getText();
myComboBox.addItem(userInputText);
}
});
}
// this is what Eclipse will propably generate for you so you can launch the program and show your frame:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new MyProgram().setVisible(true);
}
});
}
}
问题是当向用户显示错误消息时,我需要转换模型属性名称。我正在按照this link来组织我的翻译文件,如下所示:
unless self.valid?
raise Lib::Commands::BaseException.new(self.errors.full_messages)
end
有什么想法吗?预先感谢。
答案 0 :(得分:0)
因此,经过一些研究,我找到了解决该问题的方法。
问题是我在处理ActiveModel而不是ActiveRecord,而且我的课程在某些模块中。因此,要使其正常工作,我需要进行以下更改:
activemodel:
attributes:
module1/module2/module3/class_name:
attribute: 'attribute'
因此,在使用模块时,定义如下:
module1/module2/module3/class_name:
在使用active_model_attributes时,有必要在activemodel下而不是activerecord下进行定义