我感兴趣的是构建一个同构应用程序,它将React.js用于前端,而Rails用于其他所有应用程序。
我确定我会使用相当数量的AJAX,但是对于主要表单提交和页面更改,我想通过Rails路由器。我不想使用Javascript来控制我在客户端上显示的观看次数。
我唯一的问题是,在React中设置输入的最佳方法是什么,以便它们与我在Rails中的模型完全绑定?
在常规erb中,您将为给定模型创建一个表单对象,然后使用该对象上的输入方法创建已经设置的HTML输入,以便在提交时,数据绑定非常自动。
我能想到用React之类的东西来做这件事的唯一方法是在我的输入上手动设置name
属性,以便它们被正确绑定。我想这并不可怕,我只是想知道是否有人有更好的解决方案。
答案 0 :(得分:0)
创建客户端(React模型)以“反映”rails响应。 例如在铁轨方面:
class Message < ActiveRecord::Base
belongs_to :thread
validate :text, presence: true
end
服务器索引/新端点发送的JSON响应应定义客户端的数据模型结构。例如,索引端点可以返回:
{
"messages": [
{
"id": "1",
"text": "Hello Stack",
"threadId": "5"
}
]
}
客户端模型:
var Message = function Model(){
this.id = null;
this.text = null;
this.threadId = null;
};
Message.fromJSON = function(messageJSON) {
var message = new Message();
message.id = messageJSON.id;
// ...
return message;
};
module.exports = Message;
然后在创建/编辑时,只需调用JSON.stringfy(msg)。